文字列のバランス中括弧({})を一致させようとしています。たとえば、次のバランスを取りたいと思います。
if (a == 2)
{
doSomething();
{
int x = 10;
}
}
// this is a comment
while (a <= b){
print(a++);
}
私はMSDNからこの正規表現を思いついたが、うまく機能しない。{}のネストされた一致する複数のセットを抽出したいと思います。親の試合にのみ興味があります
"[^{}]*" +
"(" +
"((?'Open'{)[^{}]*)+" +
"((?'Close-Open'})[^{}]*)+" +
")*" +
"(?(Open)(?!))";