<div class="abc" id="efg">
<div>content 1</div>
<div>content 2</div>
<ul><li>li 1</li></ul>
<a href="#">here</a>
  </div>求一个c#正则表达式,获得<div class="abc" id="efg"></div>中间的内容。谢谢

解决方案 »

  1.   

     s   =   Regex.Replace(s,"<SCRIPT.*?>.*?</SCRIPT>","",RegexOptions.IgnoreCase|RegexOptions.Singleline);   
      

  2.   

    str = Regex.Replace(str,"<div class=\"abc\" id=\"efg\">([\\w\\W]*)</div>","$1");
      

  3.   

    平衡组的典型应用场景Match m = Regex.Match(yourStr, @"<div\s+class=""abc""\s+id=""efg"">(((?<o>)<div[^>]*>|(?<-o>)</div>|(?:(?!</?div)[\s\S]))*)(?(o)(?!))</div>", RegexOptions.IgnoreCase);
    if (m.Success)
    {
        richTextBox2.Text = m.Value;
    }
      

  4.   

    平衡组的典型应用场景Match m = Regex.Match(yourStr, @"<div\s+class=""abc""\s+id=""efg"">(((?<o>)<div[^>]*>|(?<-o>)</div>|(?:(?!</?div)[\s\S]))*)(?(o)(?!))</div>", RegexOptions.IgnoreCase);
    if (m.Success)
    {
        richTextBox2.Text = m.Value;
    }PS:CSDN一到周末就抽风,代码贴上来居然走样成那样了
      

  5.   

    平衡组的典型应用场景Match m = Regex.Match(yourStr, @"<div\s+class=""abc""\s+id=""efg"">(((?<o>)<div[^>]*>|(?<-o>)</div>|(?:(?!</?div)[\s\S]))*)(?(o)(?!))</div>", RegexOptions.IgnoreCase);
    if (m.Success)
    {
        richTextBox2.Text = m.Value;
    }PS:CSDN一到周末就抽风,代码贴上来居然走样成那样了
      

  6.   

    算了,直接贴正则吧,用下面的正则替一下,如果再显示不全也没办法了,天亮了再来看看吧<div\s+class=""abc""\s+id=""efg"">(((?<o>)<div[^>]*>|(?<-o>)</div>|(?:(?!</?div)[\s\S]))*)(?(o)(?!))</div>
      

  7.   

    没有那么复杂
     String re = @"<div class=""abc"" id=""efg"">([\s|\S|.]+)</div>";
            String test = @"<div class=""abc"" id=""efg""> <div>content 1 </div> <div>content 2 </div> <ul> <li>li 1 </li> </ul> <a href=""#"">here </a> </div> ";
            Regex reg = new Regex(re, RegexOptions.Multiline & RegexOptions.IgnoreCase);
            Match m = reg.Match(test);
            Response.Write(m.Groups[1]);
            Response.End();测试通过。