Я ищу соответствие строки формату выражения в формальной логике, где два алфавитных символа оперируются с помощью v | ^ |> | =, где символам может предшествовать ~ |! |?, И гдесимволы могут быть заключены в квадратные скобки, а перед ними снова стоит ~ |! | ?.Сначала я подумал, что это может сделать следующее выражение:
s.matches("^[!?~]*[(]*[!?~]*[a-z]{1}\\s[v>=^]{1}\\s[!?~]*[a-z]{1}[)]*$")
Однако я понял, что эти выражения можно накладывать друг на друга, и я не знаю, как объяснить это в регулярном выражении.
Примеры допустимых совпадений:
~ pvq
~? (P ^ ~ r)
! P
pv ~ (!r ^ t)
~! (p = (~! q ^ t))
Можно добавить столько операторов, сколько вы хотите, чтобы создать чрезвычайно длинное выражение.Как мне объяснить это с помощью регулярного выражения в общем формате?
Спасибо, куча:)