string pattern = @"<div\s+.*?id\s*=\s*""p_content""\s*.*?>(?<Text>.*?)<\s*/\s*div\s*>";Regex r = new Regex( pattern , RegexOptions.IgnoreCase );
Match m = r.Match( yourString );while( m.Success )
{
   string text = m.Group[ "Text" ].Value;
   
   dosomething...
   
   m = m.NextMatch();
}

解决方案 »

  1.   

    非常感谢OneDotRed(武装到眼神),
    除了string text = m.Group[ "Text" ].Value;
    要改为string text = m.Groups[ "Text" ].Value;之外,
    可以用了,不过还有个问题,如果在一个<div></div>再嵌套一个复合条件的部分,这个表达式取出的是第一个开头的<div>和第一个</div>,怎么修改一下,可以取出的是第一个<div>和</div>匹配的内容,例子如:
    html>
    <div width="100%" border="0" id="p_content">  
    welcome to csdn.net
    <div id="p_content">
    你好!
    </div>
    <br>
    </div>可以一次一次取出,但是第一次正确取出
    welcome to csdn.net
    <div id="p_content">
    你好!
    </div>
    <br>
    请问怎么修改正则表达式。
      

  2.   

    那个例子按照你给的表达式,得到的是
    <div width="100%" border="0" id="p_content">  
    welcome to csdn.net
    <div id="p_content">
    你好!
    </div>
    它搜索到的是外部<div>和内部嵌套的</div>之间的内容啊,两个</div>之间的内容<br>就给删除了啊,怎么解决呢?
      

  3.   

    请斑竹帮忙结贴给分吧,感谢OneDotRed(武装到眼神) ,谢谢!