我想用正则表达式来验证一个字符串。它应该允许字符串和booleaen运算符(如(@string1 OR)
)之间有空格,但不允许在(string 1)
之类的字符串之间使用空格。允许其他布尔逻辑是:可能的有效和无效投入布尔逻辑的正则表达式
(A AND B) AND (NOT C)
(A OR B) AND (NOT C)
(A AND B)
(A OR B)
(NOT C)
例子如下。
有效期:
(@string1 OR @string2) AND (NOT @string3)
(@string-1 AND @string.2) AND (NOT @string_3)
(@string1 OR @string2 OR @string4) AND (NOT @string3 AND NOT @string5)
(@string1 OR @string2 OR @string4)
(@string1 AND @string2 AND @string4)
(NOT @string1 AND NOT @string2 AND NOT @string4)
(NOT @string1 AND NOT @string2)
无效:
()
(string 1 OR @str ing2) AND (NOT @tag3)
(@string 1 OR @tag 2) AND (NOT @string 3)
(@string1 @string2) (NOT @string3)
(@string1 OR @string12) AND (@string3)
(@string1 AND NOT @string2)
是更好地解析字符串,然后有多个正则表达式核实没有空格的,或者可以在正则表达式写检查整个字符串?
这些查询可以嵌套'(...)',正确吗? –
此外,什么阻止用户: - 不是,第二个NOT是一个字符串?我想我问的是,你怎么知道什么是和不是一个字符串? – grail
@WiktorStribiżew是的,这是正确的。 –