В моей логике есть ошибка для разбиения строки на основе регулярного выражения.Цель состоит в том, чтобы создать токенизатор для синтаксиса Python.У меня есть четыре простых регулярных выражения;цифры, числа с плавающей запятой, операторы и переменные.Я хочу извлечь первый набор из четырех перечисленных выше регулярных выражений в строку, а затем поместить его в свой стек.
String s = "123+abc+123abc";
String allRegex = String.format("%s|%s|%s|%s", digit, floats, operators, variable);
Pattern allRegexPattern = Pattern.compile(allRegex);
Matcher matchString = allRegexPattern.matcher(s);
int group = 1;
while (s != null)
{
if (group == 5)
group = 1;
if (matchString.find())
{
String temp = matchString.group(group);
if (temp != null)
{
tokens.add(temp);
s = s.replace(temp, "");
}
else
group++;
}
}
//Expecting ["123","+","abc","+","123abc"] in my stack
В данный момент код работает бесконечно ..