AND
正しくない/論理ステートメントに一致する正規表現が必要ですがOR
、たとえば引用符で囲まれている場合は一致しません。
次の場所に一致するものはありません:
MAR AND SATURN
MAR OR SATURN
"MAR AND SATURN"
AND
またはOR
の両側に少なくとも 1 つの空白文字と 1 つの非空白文字があり、文字がOR
またはで構成されていない場合、一致はありませんAND
。したがって、たとえば ..R AND S.. は一致するべきではありませんが、一致する(OR) OR (OR)
必要(AND) AND (AND)
があります。
マッチ
MARS AND SATURN [AND]
MARS [OR]
MARS [ OR ]
[AND] AND [AND]
[OR] [AND]
[OR] [AND]
[AND] [OR]
[ AND ] [ OR ]
AND
or演算子の前、後、または両側に空白が含まれている例OR
もありますが、これらも一致する必要があります。
私は.NETフレームワークを使用していますが、これが私が思いついたものです。ただし、複雑すぎるようです。単純化する方法が必要です。
(?!.*\"")(?<!(?:\bAND\b\s|\bOR\b\s))(?:\b(?:AND|OR)\b)(?=\s\b(?:AND|OR)\b)|(?<=\bAND\b\s|\bOR\b\s)(?:\b(?:AND|OR)\b)(?!\s\b(?:AND|OR)\b)|^\b(?:AND|OR)\b|(?:AND\s?|OR\s?)$|(?<=\()\s?(?:\bAND\b|\bOR\b)|(?<=\()(?:\bOR|\bAND)(?=\))|(?:\bOR|\bAND)(?=\))(?!.*\"")