我想用正則表達式來驗證一個字符串。它應該允許字符串和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是的,這是正確的。 –