C# .Net使用正则表达式去除HTML标记和空格
using System.Text.RegularExpressions;
在进行数据采集,显示文章摘要,内容计数等情况下,需要清除源代码中的html标签,空格,style,script等标签.
注意下面代码的执行顺序:
1.styleReg:清除样式.如<style>.class{}</style>.全部替换为空.
2.scriptReg和styleReg同样的道理.
3.htmlReg :清除html标签的.输入为<div>aaa</div>,结果为:aaa
4.htmlSpaceReg :html空格 替换为空格
5.spaceReg :把一个以上的空格替换为一个空格
}
想去掉除了段落标记之外的所有html标记,只要页面的文字,好比是我把代码贴到记事本里面的效果,去掉了链接等代码。
可以试试。
public static string DelHTML(string Htmlstring)//将HTML去除
{
#region
//删除脚本
Htmlstring =System.Text.RegularExpressions.
Regex.Replace(Htmlstring,@"<script[^>]*?>.*?</script>","",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
//删除HTML
Htmlstring =System.Text.RegularExpressions.
Regex.Replace(Htmlstring,@"<(.[^>]*)>","",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
Htmlstring =System.Text.RegularExpressions.
Regex.Replace(Htmlstring,@"([\r\n])[\s]+","",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
Htmlstring =System.Text.RegularExpressions.
Regex.Replace(Htmlstring,@"-->","",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
Htmlstring =System.Text.RegularExpressions.
Regex.Replace(Htmlstring,@"<!--.*","",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
//Htmlstring =System.Text.RegularExpressions.
Regex.Replace(Htmlstring,@"<A>.*</A>","");
//Htmlstring =System.Text.RegularExpressions.
Regex.Replace(Htmlstring,@"<[a-zA-Z]*=\.[a-zA-Z]*\?[a-zA-Z]+=\d&\w=%[a-zA-Z]*|[A-Z0-9]","");
Htmlstring =System.Text.RegularExpressions.
Regex.Replace(Htmlstring,@"&(quot|#34);","\"",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
Htmlstring =System.Text.RegularExpressions.
Regex.Replace(Htmlstring,@"&(amp|#38);","&",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
Htmlstring =System.Text.RegularExpressions.
Regex.Replace(Htmlstring,@"&(lt|#60);","<",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
Htmlstring =System.Text.RegularExpressions.
Regex.Replace(Htmlstring,@"&(gt|#62);",">",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
Htmlstring =System.Text.RegularExpressions.
Regex.Replace(Htmlstring,@"&(nbsp|#160);","
",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
Htmlstring =System.Text.RegularExpressions.
Regex.Replace(Htmlstring,@"&(iexcl|#161);","\xa1",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
Htmlstring =
System.Text.RegularExpressions.Regex.Replace(Htmlstring,@"&(cent|#162);","\xa2",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
Htmlstring =System.Text.RegularExpressions.
Regex.Replace(Htmlstring,@"&(pound|#163);","\xa3",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
Htmlstring =System.Text.RegularExpressions.
Regex.Replace(Htmlstring,@"&(copy|#169);","\xa9",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
Htmlstring =System.Text.RegularExpressions.
Regex.Replace(Htmlstring,
@"&#(\d+);","",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
Htmlstring.Replace("<","");
Htmlstring.Replace(">","");
Htmlstring.Replace("\r\n","");
//Htmlstring=HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();
#endregion
return Htmlstring;
}
