正規表現を使用して、文字列内で開始区切り文字と終了区切り文字に適合する最小のシーケンスを探します(エスケープ文字を考慮に入れます)。たとえば、次の文字列がある場合、最も低い一致を見つけて、一致[ two ]
を[ four \[ five \] ]
無視しながら、それらがに含まれているとし[ one ... three ... six]
ます。
zero [ one [ two ] three [ four \[ five \] ] six ] seven
これまでのところ、次の正規表現があります。これは、ネガティブルックビハインドを使用してチェック]
し、2番目の一致の最後を完全にキャッシュしていません。
(\[)(?:(?!(?:[^\\])\1|\]).)*]
私の目標は、単純なネストされたコマンドブロックを処理するために使用できる単純なパーサーを用意することです。