用c#中正则表达式如何实现文本如下:
<!-- start -->
<pre>
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
</pre>
<!-- end --> 第1步:请教高手取出<!--start--><!--end-->中的内容得到以下结果:
<pre>
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
</pre>
第2步:取出<pre></pre>中的内容得到以下结果:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa谢谢
<!-- start -->
<pre>
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
</pre>
<!-- end --> 第1步:请教高手取出<!--start--><!--end-->中的内容得到以下结果:
<pre>
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
</pre>
第2步:取出<pre></pre>中的内容得到以下结果:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa谢谢
<!-- start -->
<pre>
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
</pre>
<!-- end -->";
Regex reg = new Regex(@"<!-- start -->(\s*?<pre>([\s\S]*?)</pre>)\s*<!-- end -->");
MatchCollection ms = reg.Matches(str);
foreach(Match m in ms)
{
Response.Write(Server.HtmlEncode(m.Result("$1")));
Response.Write(m.Result("$2"));
}
<!-- start -->\n详细信息:<br><br>
<pre>\nsfdsfsdfsdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n</pre>
\n<!-- end -->
我现在对付空格部分全部都使用 [\s\S]*?
HTML千变万化实在有点麻烦 为了适应各种可能性还是考虑全面一点得好
例如使用
<(xxx)(?=[\s>])[^>]*>[\s\S]*?</\1>
来匹配所有无嵌套的带关闭标签的HTML标签才能算完美
千万不要用MSDN上面那个不负责任的表达式