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

请问,怎么用正则获取{}中各嵌套层的字符串

2012-09-04 
请教,如何用正则获取{}中各嵌套层的字符串如果我的字符串内容是abc+dcf {{abc+{dcf({bdf-(123)})-254/387

请教,如何用正则获取{}中各嵌套层的字符串
如果我的字符串内容是
"abc+dcf {{abc+{dcf({bdf-(123)})-254/387{djghdfkd}}/{defsf{sffdf}}}}/dfghdsdj-{dgljljg.dkjg/djgfh{djg(djgjg)}}"这种嵌套字符串

我可以通过基于平衡组的Pattern"\{(?>[^\{\}]+|(?<DEPTH>\{)|(?<-DEPTH>\}))*(?(DEPTH)(?!))\}"获得字符串"{{abc+{dcf({bdf-(123)})-254/387{djghdfkd}}/{defsf{sffdf}}}}
{dgljljg.dkjg/djgfh{djg(djgjg)}}"

如果我需要获得每一对嵌套"{}"中的字符串的值,程序应该怎么写?谢谢各位。

[解决办法]

C# code
List<string> temp_list = new List<string>();        public void GetMatchString(string tempStr,string pattern)        {            foreach (Match m in Regex.Matches(tempStr, pattern))            {                temp_list.Add(m.Value);                GetMatchString(m.Value.Remove(m.Value.Length-1),pattern);            }        }
[解决办法]
按照{}的数量排序之后处理

热点排行