我有以下表达式:
KNOWN_TOKEN=((value operator value) operator value)
operator OTHER_KNOWN_TOKEN=value
operator KNOWN_TOKEN2=(value operator (value operator value));
我正在尝试找到一个c#正则表达式,以便在打开时用同样匹配的闭括号返回整个表达式。这意味着,对于KNOWN_TOKEN
,我只需要((value operator value) operator value)
,OTHER_KNOWN_TOKEN
我只需要value
而KNOWN_TOKEN2
我需要(value operator (value operator value))
。
我尝试了(\([^(]+\))
的各种风格,但它们只匹配'最低'的'paranthesis'组合,此外,它们匹配额外的一个(即KNOWN_TOKEN2
它们匹配额外的结束括号)
另外,我已经在网上找到了一些提示,将其分成几个重复的步骤并更改原始文本,但我宁愿将其添加到单个正则表达式中。任何提示?
谢谢!
答案 0 :(得分: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(';');
}
<强> EDITED 强>