0

私は次の表現を持っています:

KNOWN_TOKEN=((value operator value) operator value) 
            operator OTHER_KNOWN_TOKEN=value 
            operator KNOWN_TOKEN2=(value operator (value operator value));

私は ac# 正規表現を見つけて、開いたときに閉じ括弧が等しく一致する式全体を返すようにしようとしています。これは、 for KNOWN_TOKENI need only ((value operator value) operator value)、 for OTHER_KNOWN_TOKENI need only value、 for I need を意味しKNOWN_TOKEN2ます(value operator (value operator value))

さまざまなフレーバーを試し(\([^(]+\))ましたが、それらは「括弧」の「最も低い」セットにのみ一致し、さらに追加の括弧に一致します(つまりKNOWN_TOKEN2、追加の終了括弧に一致するため)。

また、ウェブ上でいくつかの繰り返しステップに分けて元のテキストを変更するヒントを見つけましたが、1 つの正規表現にしたいと思います。ヒントはありますか?

ありがとうございました!

4

1 に答える 1

0
Regex reg = new Regex(@"(?<token>[^=]*)=(?<value>\(*value.*)");
foreach (Match item in reg.Matches(""))
{
      var token= item.Groups["token"].Value.Trim();
      var val= item.Groups["value"].Value.Trim(';');
}

編集済み

于 2011-09-17T09:28:24.327 に答える