Использование регулярных выражений для сопоставления переменных в строке - PullRequest
0 голосов
/ 10 января 2019

Я хотел бы сопоставить, используя регулярные выражения с группами, в Java эти сценарии, но я не очень хорош с регулярными выражениями и не понимаю, как сопоставить повторяющиеся вещи, подобные этим:

Текст: локальный var1, var2, var3 = 100

Я хочу сопоставить, чтобы получить все имена переменных lua, чтобы мои совпадения были 'var1' и 'var2' и 'var3'

Текст: self.var1, self.var2 = 200

То же, что и выше, но с использованием self вместо local - я бы хотел совпадения с 'var1' и 'var2'

И, наконец, Текст: var1, var2, var3 = 300

Я полагаю, что смогу использовать первое регулярное выражение для этого, верно? Я бы хотел, чтобы совпадения работали на 1 или более совпадений, чтобы все они работали:

var1 = 10

var1, var2 = 10

self.v = 1

self.v1, self.v2 = 20

локальный v1, v2 = 10

местный v1 = 30

Мне не нужно все это в одном большом регулярном выражении, 2 или 3 разных шаблона будут работать. (Надеюсь, этот тип вопроса уместен, поскольку у меня нет кода для показа ...)

Заранее спасибо!

1 Ответ

0 голосов
/ 10 января 2019

Я думаю, что-то вроде этого должно работать

String input = "...Your input...";
List<String> matches = new ArrayList<>();

Matcher m = Pattern.compile("(\\w+)\\s*(?=[,=])").matcher(input);
while(m.find()) {
    matches.add(m.group(1));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...