c#通过正则表达式去掉html的一些方法,记录一下
Posted avi9111
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#通过正则表达式去掉html的一些方法,记录一下相关的知识,希望对你有一定的参考价值。
public string RemovehtmlTags(string htmlStream)
{
if (htmlStream == null)
{
throw new Exception("Your input html stream is null!");
return null;
}
/*
* 最好把所有的特殊HTML标记都找出来,然后把与其相对应的Unicode字符一起影射到Hash表内,最后一起都替换掉
*/
//先单独测试,成功后,再把所有模式合并
//注:这两个必须单独处理
//去掉嵌套了HTML标记的javascript:(<script)[\\\\s\\\\S]*(</script>)
//去掉css标记:(<style)[\\\\s\\\\S]*(</style>)
//去掉css标记:\\\\..*\\\\{[\\\\s\\\\S]*\\\\}
htmlStream = Regex.Replace(htmlStream, "(<script)[\\\\s\\\\S]*?(</script>)|(<style)[\\\\s\\\\S]*?(</style>)", " ", RegexOptions.IgnoreCase);
//htmlStream = RemoveTag(htmlStream, "script");
//htmlStream = RemoveTag(htmlStream, "style");
//去掉普通HTML标记:<[^>]+>
//替换空格: |&|| |
htmlStream = Regex.Replace(htmlStream, "<[^>]+>| |&|| ||•|<|>", " ", RegexOptions.IgnoreCase);
//htmlStream = RemoveTag(htmlStream);
//替换左尖括号
//htmlStream = Regex.Replace(htmlStream, "<", "<");
//替换右尖括号
//htmlStream = Regex.Replace(htmlStream, ">", ">");
//替换空行
//htmlStream = Regex.Replace(htmlStream, "[\\n|\\r|\\t]", " ");//[\\n|\\r][\\t*| *]*[\\n|\\r]
htmlStream = Regex.Replace(htmlStream, "(\\r\\n[\\r|\\n|\\t| ]*\\r\\n)|(\\n[\\r|\\n|\\t| ]*\\n)", "\\r\\n");
htmlStream = Regex.Replace(htmlStream, "[\\t| ]{1,}", " ");
return htmlStream.Trim();
}
以上是关于c#通过正则表达式去掉html的一些方法,记录一下的主要内容,如果未能解决你的问题,请参考以下文章