ホームページ >Java >&#&チュートリアル >正規表現で再帰またはバランシンググループを使用せずにネストされた括弧を照合する方法は?
再帰またはバランシング グループを使用せずにネストされた括弧を照合する
再帰またはバランシング グループを使用せずにネストされた括弧を照合するという問題は、次のような正規表現フレーバーを使用するときに発生します。これらの機能。通常、正規表現はネストされた構造の処理には適していないため、このタスクには独特の課題があります。
前方参照を使用したパズルの解決
この問題の解決策これには、前方参照を使用して、ネストされた括弧内の部分文字列をキャプチャすることが含まれます。次の正規表現はこれを実現します。
(?=\()(?:(?=.*?\((?!.*?)(.*\)(?!.*).*))(?=.*?\)(?!.*?)(.*)).)+?.*?(?=)[^(]*(?=$)
式の分解
この複雑な式は、ネストされた括弧のグループと一致するように連携する複数のコンポーネントで構成されます。
これらのコンポーネントを利用することにより、式は文字列の終わりに達するまでの反復ごとにネストされた括弧のグループと一致します。
追加の注意
ここで提供されるソリューションは、JavaScript などの前方参照をサポートしない正規表現のフレーバー向けに設計されており、この手法を直接適用することはできません。 >
以上が正規表現で再帰またはバランシンググループを使用せずにネストされた括弧を照合する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。