C#正则表达式匹配

时间:2011-07-26 21:52:25

标签: c# regex

我想要一个与分隔逗号短语相匹配的正则表达式 逗号之间相同数量的开放和结束括号。

例如......

{abc} (def), [ghi], (jkl, mno)
-----------------------------
the match should be:

{abc} (def)  
[ghi]  
(jkl, mno)

我正在使用C#.Net

感谢提前!

1 个答案:

答案 0 :(得分:3)

如果没有嵌套括号,您可以使用:

((?:\{[^}]*\}|\([^)]*\)|\[[^\]]*\])\s*)+

string test  = "{abc} (def), [ghi], (jkl, mno)";
string pattern = @"((?:\{[^}]*\}|\([^)]*\)|\[[^\]]*\])\s*)+";
foreach (Match m in Regex.Matches(test, pattern))
    Console.WriteLine(m.Value);

打印:

{abc} (def)
[ghi]
(jkl, mno)