Hello
Я пытаюсь создать правило проверки, которое проверяет регулярное выражение на прием только определенных фраз.Regex основан на Java.
Вот примеры правильных входных данных:
1OR2
2
1 OR 2 OR 15
( 2OR3) AND 1
(12AND13 AND1)OR(4 AND5)
((2AND3 AND 1)OR(4AND5))AND6
но я был бы рад, если бы только регулярное выражение могло принимать что-то вроде:
())34AND(4
Я понятия не имею, как создать регулярное выражение для проверки правильности открытия и закрытия скобок (они могут быть вложенными).Я предположил, что это невозможно проверить в регулярном выражении, поэтому правильная проверка скобок, которые я уже сделал в коде (реализация стека).В коде у меня есть второй шаг проверки фразы.
Все, что мне нужно сделать, это проверить, есть ли в фразе следующие конкретные вещи:
числа, круглые скобки,допускаются слова И и ИЛИ с несколькими вхождениями и пробелами.Он не должен принимать буквы или другие символы.Все, что мне удалось создать, это:
^[0-9 \\(][0-9 \\(\\)]*
также попытался добавить что-то вроде:
\\b(AND|OR)\\b
внутри второй парыскобок, но не повезло.
Я не могу понять, как исправить это, добавив слова OR и AND.