首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

组平衡正则表达式

2013-01-08 
求一个组平衡正则表达式我要实现通过正则表达式解析一个字符串,字符串是这样的:EN(n+EN(wt)+EN(tt))要解析

求一个组平衡正则表达式
我要实现通过正则表达式解析一个字符串,字符串是这样的:

EN(n+EN(wt)+EN(tt))
要解析出来三个函数,就是3个En函数,现在正则表达式不会写,我写得如下:
EN(?'group'\()(.*)(?'-group'\))(?(group)(?!))

这样解析出来第一次可以解析出来,函数为en,参数为:n+EN(wt)+EN(tt),这个是正确的,但是当解析n+EN(wt)+EN(tt)的时候,解析就不是两个函数,而是一个函数,参数是 wt)+EN(tt ,这个时候其实是要解析乘两个函数才是正确的,不知道哪里要改下,还希望高人指点
[解决办法]
 string str = "n+EN(wt)+EN(tt)";
            var ary = Regex.Matches(str, @"(?i)en\((((?<g>\()
[解决办法]
(?<-g>\))
[解决办法]
[^()]+)*)\)(?(g)(?!))").OfType<Match>().Select(T => "函数:EN  参数:" + T.Groups[1].Value).ToArray();
          

热点排行