Как написать регулярное выражение Java для токенизации строк? - PullRequest
0 голосов
/ 31 марта 2019

Я могу токенизировать часть строки, но не всю строку. Мне нужна помощь в написании регулярного выражения, чтобы tokenzie всей строки. Строка, которую я пытаюсь tokenzie: 123 + 56 * num1.

Ниже приведены регулярные выражения, которые я уже пробовал. Я могу токенизировать 123 + 56 *, но не 123 + 56 * num1. Было бы здорово, если бы выражение могло совпадать и с именами переменных.

String variableRegex = "[a-zA-Z_$0-9][a-zA-Z_$0-9]*"; //for variable names
String operatorRegex = "\\+|-|\\/|\\*|\\*|="; // for operators
String multiply = "\\*";
String numberRegex = "\\d*";
String definingVariables = String.format("(%s)(%s)(%s|%s)(%s)", variableRegex, operatorRegex, variableRegex, numberRegex, multiply);
String justVariable = String.format("%s", variableRegex);
String allRegex = String.format("%s|(%s)", definingVariables, justVariable);

Результат должен быть:

123

+

56

*

Num 1

Текущий результат: 123 + 56 * num1

1 Ответ

0 голосов
/ 31 марта 2019

Это похоже на работу:

"[0-9a-z]+|\+|\*"

См. https://regex101.com/r/rzhoyx/1/.

...