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

正则表达式匹配DIV里面的内容 很急高手进拉!!!
不知道过客在吗?如果看到贴子希望帮我解决下问题,,
真心希望这个贴子高手能帮忙解决下,在这里谢谢呀!!
 我要实现的功能就是通过正则表达式匹配下面这个大DIV获取到里面所有的内容..中间有几层嵌套不太容易 ,希望能帮下我的忙。。

<div class="sbox_3" id="EFF_PINFO_Con_0">
  这是最外层大DIV
 <div class="ProInfo">
  <DIV>这是嵌套DIV内容</DIV>
  <DIV> 这是嵌套DIV内容</DIV>
  <TABLE cellSpacing=0 cellPadding=0 border=0>
  <TBODY>
  <TR>
  <TD vAlign=top><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Arial">
  <DIV>这是嵌套在表格里面DIV内容</DIV>
  </TD>
  </TR>
  </TBODY>
  </TABLE>
  <TABLE cellSpacing=0 cellPadding=0 border=0>
  <TR>
  <TD>
  <DIV style="PADDING-BOTTOM: 12px; PADDING-TOP: 5px"><STRONG>体贴人性完美体验</STRONG>
  <STRONG>―― </STRONG><STRONG>丰富多彩的人性化易用设计</STRONG>
  </DIV>
  </TD>
  </TR>
  <TR>
  <TD>&nbsp;</TD>
  </TR>
  <TR>
  <TD>
  <TABLE cellSpacing=0 cellPadding=0 border=0>
  <TBODY>
  <TD vAlign=top><STRONG><STRONG>全新联想高触感键盘<BR></STRONG></STRONG>
  <DIV>嵌套的DIV</DIV>
  </TD></TR></TABLE>
  </div>
<!--div class="ProInfo"结束-->

  <div class="State"><h3>京东商城服务承诺:</h3>
  <div class="sbox_4">京东商城向您保证所售商品均为正品行货,</div>
  <h3>售后服务:</h3>
  <div class="sbox_4">本产品全国联保,享受三包服务</div>
  </div>
  <!--div class="State"结束-->
  <div class="State"><strong>声明:</strong></div>
</div>
<!--外层大DIV结束-->


------解决方案--------------------
就取最外层的,还是根据ID之类的标识来取?

这是取最外层的
C# code
Regex reg = new Regex(@"(?is)<div[^>]*>(?><div[^>]*>(?<o>)|</div>(?<-o>)|(?:(?!</?div\b).)*)*(?(o)(?!))</div>");
MatchCollection mc = reg.Matches(yourStr);
foreach(Match m in mc)
{
    richTextBox2.Text += m.Value + "\n";
}