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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用正则表达式去掉html标签相关的知识,希望对你有一定的参考价值。

1、正则表达式去掉html标签代码如下:
/// <Header> /// 去除 HTML tag
/// </Header>
/// <param name="HTML">源</param>
/// <returns>结果</returns> public static string StripHTML(string HTML) //google "StripHTML" 得到 string[] Regexs =

@"<script[^>]*?>.*?</script>",
@"<(\\/\\s*)?!?((\\w+:)?\\w+)(\\w+(\\s*=?\\s*(([""\'])(\\\\[""\'tbnr]|[^\\7])*?\\7|\\w+)|.0)|\\s)*?(\\/\\s*)?>",
@"([\\r\\n])[\\s]+",
@"&(quot|#34);",
@"&(amp|#38);",
@"&(lt|#60);",
@"&(gt|#62);",
@"&(nbsp|#160);",
@"&(iexcl|#161);",
@"&(cent|#162);",
@"&(pound|#163);",
@"&(copy|#169);",
@"(\\d+);",
@"-->",
@"<!--.*\\n"
;

string[] Replaces =

"",
"",
"",
"\\"",
"&",
"<",
">",
" ",
"\\xa1", //chr(161), "\\xa2", //chr(162), "\\xa3", //chr(163), "\\xa9", //chr(169), "",
"\\r\\n",
""
;

string s = HTML;
for (int i = 0; i < Regexs.Length; i++)

s = new Regex(Regexs[i], RegexOptions.Multiline | RegexOptions.IgnoreCase).Replace(s, Replaces[i]);

s.Replace("<", "");
s.Replace(">", "");
s.Replace("\\r\\n", "");
return s;


2、可以直接复制到txt,然后保存成为.html,在浏览器中设置即可!
参考技术A

这是js清楚html标签的表达式,不用语言可能会有些不同,但是区别不大。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style type="text/css">
        #div1.activebackground: yellow;
        #div1 divwidth: 100px;height: 200px;display: none;
        </style>
        <script type="text/javascript">
        window.onload=function()
        
            var oDiv="<div id='div1'>"
                        +"<input type='button' value='1'/>"
                        +"<input type='button' value='2'/>"
                        +"<input type='button' value='3'/>"
                        +"<input type='button' value='4'/>"
                        +"<div>11</div>"
                        +"<div>22</div>"
                        +"<div>33</div>"
                        +"<div>44</div>"
                    +"</div>";
            console.log(oDiv+"\\n");
            console.log(oDiv.replace(/<\\/0,[a-z](.+?)>/gi,""));
        
        </script>
    </head>
    <body>
        <div id='div1'>
            <input type="button" value="1"/>
            <input type="button" value="2"/>
            <input type="button" value="3"/>
            <input type="button" value="4"/>
            <div>11</div>
            <div>22</div>
            <div>33</div>
            <div>44</div>
        </div>
    </body>
</html>


什么是正则表达式?

正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。

参考技术B   protected void Page_Load(object sender, EventArgs e)
  
  //string regexstr = @"<[^>]*>"; //去除所有的标签
  //@"<script[^>]*?>.*?</script >" //去除所有脚本,中间部分也删除
  // string regexstr = @"<img[^>]*>"; //去除图片的正则
  // string regexstr = @"<(?!br).*?>"; //去除所有标签,只剩br
  // string regexstr = @"<table[^>]*?>.*?</table>"; //去除table里面的所有内容
  string regexstr = @"<(?!img|br|p|/p).*?>"; //去除所有标签,只剩img,br,p
  str = Regex.Replace(str, regexstr, string.Empty, RegexOptions.IgnoreCase);
  
参考技术C 使用 “<[^<]*>” 然后创建一个RegEXP对象 过滤

这是表达式内容,至于表达式的规范我就不说了

如何用正则表达式把括号连同中括号里的字符去掉

参考技术A

问题描述
用正则表达式,去掉如下字符。abc[abc]abcd[abcdesd]abdd[sfsfafw]把中括号连同中括号里的字符都去掉。中括号字符串里有多种长度。
解决方法
用正则表达式:[.*?]
把中括号连同中括号里的字符替换为空,就行了。
对于圆括号,只要把里面的中括号替换为圆括号即可。

以上是关于如何用正则表达式去掉html标签的主要内容,如果未能解决你的问题,请参考以下文章

向各位正则高手请教:java 如何用正则 ,去除html标签之间的空格

java字符串里面如何用正则表达式去掉汉字?

如何用正则表达式把括号连同中括号里的字符去掉

如何用正则表达式匹配除了img标签的所有其他标签 匹配所有html标签我知道: /<[^>]+>/g 关键排除img标签

如何用正则表达式在JS中匹配出相应的拓展名?

IOS使用正则表达式去掉html中的标签元素,获得纯文本