<div class="t1">...<div>
<div class="blk-video" style="margin-top:5px;margin-bottom:5px;">
<div class="blk-video-l">
<a href="http://video.sina.com.cn/news/w/v/2009-07-21/121041542.shtml"><img src="http://p3.v.iask.com/602/599/22872243_0.jpg" width="50" height="38" alt="麻生太郎正式宣布解散日本众议院
" /></a>
</div>
<div class="blk-video-r">
<div class="blk-v-tit"><a href="http://video.sina.com.cn/news/w/v/2009-07-21/121041542.shtml">麻生太郎正式宣布解散日本众议院
</a></div>
<a href="http://video.sina.com.cn/news/w/v/2009-07-21/121041542.shtml" class="blk-v-play">播放视频</a>
</div>
</div>
<div class="clearcl">...</div>
我想 class="blk-video" 的那个div 整个删除,包括<div class="blk-video-l">,<div class="blk-video-r">怎么办?

解决方案 »

  1.   

    不用正则了吧,可以应用下   栈    ,记录这个class blk-video的div的开始位置,然后遇到个div就记录下位置,或者存储个标记,然后遇到个</div>就取消最近的那个标记,一直到最后一个,这样就可以确定那个class的结束位置了,这样,就可以删除这个字符串了
      

  2.   

    曾经提过相似的问题。空军的解决方案
    http://topic.csdn.net/u/20081009/09/f199eede-a9ed-4d75-858b-29e4e26d63aa.html
      

  3.   


    //try@"<div\s*class=""blk-video""[^<>]*>(((?!</?div)<[a-z]*[^<>]*>)|[^<>]*)*(((?'o'<div[^>]*>)(((?!</?div)<[a-z]*[^<>]*>)|[^<>]*)*)+((?'-o'</div>)(((?!</?div)<[a-z]*[^<>]*>)|[^<>]*)*)+)*(?(o)(?!))</div>"
    //
      

  4.   

    没有管div里面的其他标签匹配 
    匹配不到的话楼主贴出原串
      

  5.   

    顶个
    学习下...string pattern = @"(?six)<div\s+id=""content"">
        (?'MyCont'
          (?>
            (?!<div\b|</div>).
            |
            <div(?:\s+(?:""[^""]*""|'[^']*'|[^""'>])*)?>(?'div')
            |
            </div>(?'-div')
          )*
          (?(div)(?!))
        )
        </div>";