读书人

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

发布时间: 2012-09-04 14:19:30 作者: rapoo

请教,如何用正则获取{}中各嵌套层的字符串
如果我的字符串内容是
"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);            }        }
[解决办法]
按照{}的数量排序之后处理

读书人网 >C#

热点推荐