Я пытаюсь написать регулярное выражение, чтобы проверить, соответствует ли данная строка a + b, 2 + a + b, 3 + 6 * 9 + 6 * 5 + a * b и т. Д. ...Регулярное выражение для арифметического выражения
Только + и * операторы.
Я попытался
if (str.matches("(\\d|\\w \\+|\\*){1,} \\d|\\w"))
К сожалению, он обрабатывает только случаи, как 3 * 7 ... (цифровая * цифровая).
Жду ваших ответов, спасибо, что прочитали меня.
классовый характер (ала @AvinashRaj) явно лучше. Чисто в образовательных целях проблема с вашим использованием вертикальной панели заключается в том, что вы не группировали вещи до и после. Если вы хотите '\\ + | \\ *', вам нужно сгруппировать их как '(?: \\ + | \\ *)'. То же самое с '\\ d \\\ w', хотя это не так важно, так как \\ w включает \\ d. –