不知道过客在吗?如果看到贴子希望帮我解决下问题,,
真心希望这个贴子高手能帮忙解决下,在这里谢谢呀!!
 我要实现的功能就是通过正则表达式匹配下面这个大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结束-->

解决方案 »

  1.   

    非贪婪模式(?<=div class=""sbox_3"" id=""EFF_PINFO_Con_0"">).*(?=</div>)
      

  2.   

    哇一定要表达式来吗?
    用javascript获取innerHTML好像更容易些吧。
      

  3.   

    就取最外层的,还是根据ID之类的标识来取?这是取最外层的
    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";
    }
      

  4.   

    是这样的 这是最大的DIV( <div class="sbox_3" id="EFF_PINFO_Con_0"> )
    我要取出这个DIV里面的全部内容,也就是1楼上的所用内容。 里面有嵌套的你看清楚下,
    难点就是 不知道该在哪找到 属于这个 <div class="sbox_3" id="EFF_PINFO_Con_0"> 
    的结束标记。
      

  5.   

    有嵌套的在.NET中用平衡组来处理如果class或id固定,可以加入作为限制条件,否则可能取到其它的div最近工作非常忙,周末要加两天班,白天基本上没时间,只能对一些简单问题进行回答,需要长时间思考或验证的就没办法了,晚上睡前会过来看一下
      

  6.   

    我也是这两天有问题,,那好你能再帮我解答个问题么?
     我怕你没时间!!
    就是我怎么抓取一个页面 或者指定的DIV 里面的 所有 img
      

  7.   

    div较多就先取出div,再取对应的img就可以了取div就用上面的,或是复杂点的参考我的博客中关于平衡组的介绍取img,要看你是取整个img标签,还是取其中的src,以下代码基本上能满足绝大部分需求
    //取整个img标签
    Regex reg = new Regex(@"(?i)<img[^>]*>");
    MatchCollection mc = reg.Matches(yourStr);
    foreach(Match m in mc)
    {
        richTextBox2.Text += m.Value + "\n";
    }
    //取src
    Regex reg = new Regex(@"(?i)<img[^>]*?src=(['""]?)(?<src>[^'""\s>]+)\1[^>]*>");
    MatchCollection mc = reg.Matches(yourStr);
    foreach(Match m in mc)
    {
        richTextBox2.Text += m.Groups["src"].Value + "\n";
    }