私は次のような文字列を持っています:
((blah blah AND) (blah AND blah) AND good) AND Zero AND (Blah AND Blah)
括弧の外側にある「AND」のみ、つまりOUTER ANDのみと一致させたい
私が使用した正規表現は次のとおりです:AND(?!))
結果は次のとおりです。
結果のスクリーンショットをここにアップロードすることを考えましたが、
「)」が直後に続くANDとは一致しませんが、残りのANDとは一致します。
繰り返しになりますが、理想的には、括弧の外側にあるAND "のみ、つまり外側のAND"のみに一致する正規表現が必要です。
私はこれをJavaで実装しており、その正規表現の実装は再帰的正規表現をサポートしていないことに注意してください。だから、このずさんな回避策を試みている理由です
このためのより優れた、より堅牢なソリューションを探しています。
回答:
回答№1は1ここではスタックがうまく機能します。 括弧をカウントする変数を設定することにより、1つをシミュレートできます。左括弧+1および右-1の場合ANDが見つかり、かっこカウントが0の場合、すべて設定されています。