我想有一个正则表达式,它将匹配一个逗号分隔的短语
逗号之间相等数量的相同类型的打开和关闭括号。

例如...

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

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


我正在使用C#.Net

感谢前进!

最佳答案

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

((?:\{[^}]*\}|\([^)]*\)|\[[^\]]*\])\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)

关于c# - C#正则表达式匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6837062/

10-10 20:14