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();
}
Match m = r.Match( yourString );while( m.Success )
{
string text = m.Group[ "Text" ].Value;
dosomething...
m = m.NextMatch();
}
除了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>
请问怎么修改正则表达式。
<div width="100%" border="0" id="p_content">
welcome to csdn.net
<div id="p_content">
你好!
</div>
它搜索到的是外部<div>和内部嵌套的</div>之间的内容啊,两个</div>之间的内容<br>就给删除了啊,怎么解决呢?