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

asp.net中求处理字符串的一个正则表达式
例如这样一个字符串
string s="aaaa<table>bbbb<table><tersfjs>fklsk></table></table><table>cccccc<tr>sf</tr></table>fwefw";
我想得到得结果是:
  
string result1 = "<table>bbbb<table><tersfjs>fklsk></table></table>";
string result2 ="<table>cccccc<tr>sf</tr></table>";
也就是获取整个所有table里面的元素
如果table存在嵌套只获取最外层的table里面的元素。求解答求正则,在线等谢谢了各位大哥

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

void Main()
{
    string s="aaaa<table>bbbb<table><tersfjs>fklsk></table></table><table>cccccc<tr>sf</tr></table>fwefw";
    Regex reg=new Regex(@"(?is)<table[^>]*>(?><table[^>]*>(?<o>)|</table>(?<-o>)|(?:(?!</?table\b).)*)*(?(o)(?!))</table>");
    foreach(Match m in reg.Matches(s))
    {
     Console.WriteLine(m.Value);
    }
    /*
    <table>bbbb<table><tersfjs>fklsk></table></table>
    <table>cccccc<tr>sf</tr></table>
    */
}