如何用正则表达式匹配HTML标签内文字内容

如何用正则表达式匹配HTML标签内文字内容,第1张

个人以为,在各种语言中,正则表达式的实现使用起来都比较耗费资源。正则表达式针对一般的字符串匹配来使用的。如果你的html内容很多,并且是主要的处理步骤的话,我建议采用html解析库来进行内容获取,要比正则来的简单很多。毕竟html的各种不规范,程序库都已经预处理过了,而自己使用正则表达式则要面面俱到。这不仅仅是重新发明轮子的问题。

(?<=>)[^<>]+(?=<)

假如html标签里面有一句:

String a = "<style type=\"text/css\">div \n" +

"{ margin: 0padding: 0outline: 0}</style>"

我如何把这一句取出来呢,包括标签。

用正则表达式:<style([\\s\\S]*)</style>

扩展资料:

正则表达式匹配HTML标签

方法一:

var str = '<p class="odd" id="odd">123</p>'

var pattern = /<\/?[a-zA-Z]+(\s+[a-zA-Z]+=".*")*>/g

console.log(str.match(pattern))

方法二:

var str = '<p class="odd" id="odd">123</p>'

var pattern = /<[^>]+>/g

console.log(str.match(pattern))

方法三:

var str = '<input type="text" value=">" name="username" />'

var pattern = /<(?:[^"'>]|"[^"]*"|'[^']*')*>/g

console.log(str.match(pattern))

说明:()表示捕获分组,()会把每个分组里的匹配的值保存起来,使用$n(n是一个数字,表示第n个捕获组的内容)

(?:)表示非捕获分组,和捕获分组唯一的区别在于,非捕获分组匹配的值不会保存起来

没有引用的需求的话,采用非捕获性分组,更为简洁;

方法四:

var str = '<input type="text" value=">" name="username" />'

var pattern = /<(?:[^"'>]|(["'])[^"']*\1)*>/g

console.log(str.match(pattern))

</script>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7177651.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存