【发布时间】:2018-12-06 03:07:15
【问题描述】:
我希望将字符串与形式逻辑中的表达式格式匹配,其中两个字母字符由 v|^|>|= 操作,其中字符前面可以有 ~|!|?,以及字符可能会被括号包围,并再次以 ~|!|? 开头。一开始我以为下面的表达式可以做到:
s.matches("^[!?~]*[(]*[!?~]*[a-z]{1}\\s[v>=^]{1}\\s[!?~]*[a-z]{1}[)]*$")
但是,我意识到这些表达式可以相互叠加,我不知道如何在正则表达式中解释这一点。
可接受的匹配示例:
~pvq
~?(p ^ ~r)
!p
p v ~(!r ^ t)
~!(p = (~!q ^ t))
可以根据需要添加任意数量的运算符,以创建一个非常长的表达式。如何使用常规格式的正则表达式来解释这一点?
谢谢大家:)
【问题讨论】:
-
FTLOG 为什么? FWIW,我认为这是不可能的。