私の質問はかなり単純ですが、それが果たす目的はかなり複雑です。簡単な例を使用します。
AzzAyyAxxxxByyBzzB
A
したがって、通常、との間のすべてを取得したいと思いますB
。A
ただし、最初と最後B
(1 つのペア)の間のコンテンツの一部には追加のAB
ペアが含まれているため、一致の終了をプッシュバックする必要があります。(その最後の部分が理にかなっていたかどうかはわかりません)。
したがって、私が探しているのは、次の出力を可能にする正規表現です。
Match 1
Group 1: AzzAyyAxxxxByyBzzB
Group 2: zzAyyAxxxxByyBzz
次に、それを再度一致させて取得します。
Match 2
Group 1: AyyAxxxxByyB
Group 2: yyAxxxxByy
そして最後にもう一度取得します:
Match 3
Group 1: AxxxxB
Group 2: xxxx
明らか(A(.*?)B)
に、入力全体を試してみると、次のようになります。
Match x
Group 1: AzzAyyAxxxxB
Group 2: zzAyyAxxxx
これは私が探しているものではありません:)
これが理にかなっていることを願っています。これが RegEx で実行できないかどうかは理解していますが、あきらめて別のことを試す前に、正規表現のウィザードに尋ねてみようと思いました。ありがとう!
追加情報:
私が取り組んでいるプロジェクトはJavaで書かれています。
もう1つの問題は、次のようなものを含む可能性のあるドキュメントを解析していることです:
AzzAyyAxxxxByyBzzB
Here is some unrelated stuff
AzzAyyAxxxxByyBzzB
AzzzBxxArrrBAssssB
そして、上のペアは下のペアAB
から分離する必要がありますAB