我想用正则表达式检查给定的逻辑公式。
这种形式的逻辑连接词是 & (and) , | (or), (!) 否定符号(允许多个否定)和变量是正常字符序列,后跟基数 [0],[1],[0..1]。
变量名也可以是“FGH”或“F:G:H:”或简单的“F”等。
方括号属于基数。也允许使用常量,
例如使用这种模式它不起作用:
Pattern.compile("([!]*[a-zA-Z][\\.])?([!]*[a-zA-Z][\\.]?)*((\\[0\\])?|(\\[1\\])?|(\\[0\\.\\.1\\])?)|(TRUE)|(FALSE)|(&)|(|)|(!)");
我目前的情况是这样的变量:!!F[0] 不被接受,但我希望这个被接受。
这里有一些公式的例子,我想允许
!!F[0] & !F1.G[0..1] | (F1[1] | F2[0]) & F:G[0..1]
除变量及其基数外,每个元素之间也应允许有空格。