正規表現を使用して文字列を検証しようとしています。文字列とブール演算子の間の空白は(@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 NOT、2番目のNOTは文字列ですか?私は何を求めているのでしょうか、文字列ではないと文字列ではないことをどのように教えていますか? – grail
@WiktorStribiżewはい、正しいです。 –