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的一些方法,记录一下的主要内容,如果未能解决你的问题,请参考以下文章

java 去掉html标签(Java中去掉网页HTML标记的方法 )--正则表达式

实现Repeater控件的记录单选

如何用正则表达式去掉html标签

通过正则表达式在c#中打开html标签[重复]

C#匹配中文字符串的4种正则表达式分享

实例JS 正则表达式提取 html 中纯文本,去掉样式,其它标签