регулярное выражение для простого математического уравнения
Я хочу распознавать целые или десятичные числа и четыре простые операции, разбитые на токены. Я не могу заставить работать десятичную дробь, не могли бы вы помочь?
Мой рег
expression = "2.7 + 3 * (1 + 2)";
String expRegString = "\\d+(\\.\\d+)*|[\\(\\)\\+\\-\\*\\/]";
Pattern expPattern = Pattern.compile(expRegString);
Matcher expMatcher = expPattern.matcher(expression);
while (expMatcher.find()){
System.out.println(expMatcher.group());
}
дает мне"+", "3", "(" , "1", "+" , "2",")"
Изменить: правильный результат будет"2.7","+", "3", "(" , "1", "+" , "2",")"