日期:2014-05-18  浏览次数:20467 次

求一个c#正则表达式
<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>中间的内容。

谢谢

------解决方案--------------------
算了,直接贴正则吧,用下面的正则替一下,如果再显示不全也没办法了,天亮了再来看看吧

HTML code
<div\s+class=""abc""\s+id=""efg"">(((?<o>)<div[^>]*>|(?<-o>)</div>|(?:(?!</?div)[\s\S]))*)(?(o)(?!))</div>

------解决方案--------------------
没有那么复杂


 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();

测试通过。