如何用正则匹配"嵌套"类型的,得出想要的结果?
代码:
{第一层{第二层}}
第一层{第二层}
第二层
static Regex reg = new Regex(@"(?<=\{)[^{}]+((?:(?<Open>\{)(?:[^{}]+))*(?:(?<-Open>\})[^{}]*)*)*(?=\})"); static void Main(string[] args) { string str = @"{第一层{第二层{第三层{第四层{第五层{第六层}}}}}}"; GetValue(str); Console.ReadKey(); } public static void GetValue(string str) { Match m = reg.Match(str); if (m.Success) { Console.WriteLine(m.Value); GetValue(m.Value); } }/*第一层{第二层{第三层{第四层{第五层{第六层}}}}}第二层{第三层{第四层{第五层{第六层}}}}第三层{第四层{第五层{第六层}}}第四层{第五层{第六层}}第五层{第六层}第六层*/