日期:2014-05-17 浏览次数:20457 次
{$A {$B {$C 这里是C } } } {$F 这里是F }
{$A {$B {$C 这里是C } } }
{$B {$C 这里是C } }
{$C 这里是C }
{$F 这里是F }
static Regex reg = new Regex(@"\{[^{}]+((?:(?<Open>\{)[^{}]+)*(?:(?<-Open>\})[^{}]*)*)*(?(Open)(?!))\}"); static void Main(string[] args) { string str = @"{$A {$B {$C 这里是C } } } {$F 这里是F }"; GetValue(str); Console.ReadKey(); } public static void GetValue(string str) { MatchCollection mc = reg.Matches(str); foreach (Match m in mc) { Console.WriteLine(m.Value); Console.WriteLine("*******************"); GetValue(m.Groups[1].Captures[0].Value); } } /* {$A {$B {$C 这里是C } } } ******************* {$B {$C 这里是C } } ******************* {$C 这里是C } ******************* {$F 这里是F } ******************* */
------解决方案--------------------
平衡组
http://blog.csdn.net/lxcnn/article/details/4402808