:
を仮定すると、そこにループのために、あなたは私はあなたが使用している正規表現エンジンについては何も知らない(次のパターンを使用することができます内部のブロックをネストされたが、されません。そのパターンはほとんどで動作するはずです):
'\{[^{}]*)([^{}]{[^{}]*})*?[^{}]*YOURPATTERNS([^{}]{[^{}]*})*+[^{}]*+\}'
はのは、それを解凍してみましょう:
それは開口部ブラケットで始まり、できるだけ多くの非括弧文字と続きます。その後、必要に応じて、開きブラケット+スタッフ+閉じブラケットのペアが続きます。その後、ループ内で一致させたいパターンが来る可能性があります。次に、残りの可能な対の開閉ブラケットが続きます。それ以外の残りのブラケット文字は、閉じ括弧にギャップを囲むようになります。
ネストされた括弧:
あなたは、ネストされたブラケットを必要とするので、あなたは再帰的なパターンをサポートして非常に強力な正規表現エンジンを使用する必要があります。私はPythonのregexモジュール(reモジュールではありません)を使ってこのケースのために何かを書いています。次のように動作します。再帰を伴う別のエンジンを使用する場合は、それを適合させる必要があります。それ以外の場合は問題ありません。
r'\{(?P<any>[^{}]*)(?P<pairs>(?P<posany>[^{}]*+)\{(?&pairs)*?(?&posany)\})*?(?&any)YOURPATTERNS(?&pairs)*+(?&posany)\}'
[ここに多分](http://stackoverflow.com/search?q=regex+matching+brace) –