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