/ /文字列の残りの部分に括弧が続かない単語に一致-java、regex、文字列解析

文字列の残りの括弧で囲まれていない単語をマッチさせる - java、regex、string-parsing

私は次のような文字列を持っています:

((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の場合、すべて設定されています。