Спецификация нечеткая, но вот читаемое регулярное выражение, использующее мета-регулярное выражение в Java.
String regex =
"num(?:opnum)*"
.replace("op", "\\s*[*/+-]\\s*")
.replace("num", "\\s*[+-]?\\d+(?:\\.\\d+)?\\s*");
String[] tests = {
"5+4", // true
"5 - 3", // true
"5 * 6 - 4", // true
"3.14159 = 0", // true
"A = B", // false
"5+ -4", // true
"5 * +4", // true
"5++5", // true
"5+++5", // false
"5+5+" // false
};
for (String test : tests) {
System.out.println(test + " " + test.matches(regex));
}
Числа могут включать необязательную десятичную часть и знак +/-
. Там может быть несколько равенств.