C#去掉HTML标记
2016-03-29 16:39
369 查看
该方法亲测可行,下面直接粘贴代码.
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(); }
相关文章推荐
- 【.NET】使用HtmlAgilityPack抓取网页数据
- Html - a标签如何包裹Div
- [html] &nbsp|&quot|&amp|&lt|&gt等html字符转义
- HTML使用表格01
- html第九节课
- html 基本标签
- html 基本标签
- html 基本标签
- HTML使用列表
- HTMLTestRunner 异常输出中文乱码
- HTML中的英文缩写标记、属性
- 如何在Html中引入外部页面
- html文本溢出
- ubuntu下安装tidy
- html的表单form
- 在线工具、setHtmlRem、px2rem
- 解决问题 “You don't have permission to access /index.html on this server.”
- HTML学习笔记(一)
- HTML使用图像
- Html - 幽灵键盘