正则表达式高手求助!~~顶者有分
我现在的问题如下:
有N多HTML文件要对其分析。
首先只要Body标签里的内容,把之外的标签过滤掉;
(过滤掉Body里面的 <script> 标签和 <!-- --> 注释标签
然后body标签里的 <p> 、 </p> 、 <br> 、 <img> 标签留着。
可以分步用正则,Thanks
------解决方案--------------------Regex.Replace(Htmlstring, " <script[^> ]*?> .*? </script> ", " ", RegexOptions.IgnoreCase);
Regex.Replace(Htmlstring, " <!--.* ", " ", RegexOptions.IgnoreCase);
可以找(过客)帮忙!俺只会这两个了.
------解决方案--------------------string yourStr = .............;
string resultStr = Regex.Replace(yourStr, @ "[\s\S]*? <body\s+[\s\S]*?> ([\s\S]*?) </body> [\s\S]* ", "$1 " , RegexOptions.IgnoreCase); //这是body里的内容
一步步来,这是body的内容
PS:谢楼上的支持
------解决方案--------------------顶
Htmlstring = Regex.Replace(Htmlstring, " <script[^> ]*?> .*? </script> ", " ", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, " <!--.*--> ", " ", RegexOptions.IgnoreCase);
------解决方案--------------------要用这个System.Text.RegularExpressions.RegexOptions.Singleline
否则*不包括换行
------解决方案--------------------顶`~
------解决方案--------------------顶一个 学习
------解决方案--------------------rule = @ " <body(?=[ > ])[^> ]*> ([\s\S]*?) </body> ";
rule2 = @ " <script(?=[ > ])[^> ]*> [\s\S]*? </script> ";
rule3 = @ " <!--[\s\S]*?--> ";
string tempstr = " ";
//提取 <body> 中的内容
Match match = Regex.Match(查询字符串,rule,RegexOptions.IgnoreCase);
if(match.Success)
{
tempstr = Regex.Replace(match.Group[1].Value, " ",rule2,RegexOptions.IgnoreCase);
tempstr = Regex.Replace(tempstr , " ",rule3,RegexOptions.IgnoreCase);
}
//tempstr 就是你需要的
------解决方案--------------------可以这么写
------解决方案--------------------mark
学习
------解决方案--------------------不敢献丑了
------解决方案--------------------发现lxcnn(过客)时时观察着正则的问题
速度就是快啊 等我到 菜都凉了 汗~
------解决方案--------------------接分。
------解决方案--------------------学习