日期:2014-05-17  浏览次数:20463 次

再求一正则表达式
在学习正则中.请多多见谅.
页面上有两组数据:
HTML code

{$A
 {$B
  {$C
 这里是C
  }
 }
}

{$F
这里是F
}


正则可以得出以下数据:
C# code

{$A
 {$B
  {$C
 这里是C
  }
 }
}


C# code

  {$B
  {$C
 这里是C
  }
 }


C# code

{$C
 这里是C
  }


C# code

{$F
这里是F
}


如何写?谢谢!

------解决方案--------------------
C# code

        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