Я могу токенизировать часть строки, но не всю строку. Мне нужна помощь в написании регулярного выражения, чтобы 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