日期:2014-05-17 浏览次数:20531 次
{$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