邀朋友种豆,一起分享吧
喜欢购买正品行货?那就去品牌街

使用正则表达式从HTML代码段删除指定标签及其内容

来自:种豆 时间:2017-12-29 阅读:538次 原文链接
要从Html代码段忠删除指定标签的内容,如在一段代码中去除<script ...... /script>, <head>...</head>,<%.....%>等代码块。
使用如下正则表达式 /<(script|meta|%)[\s\S]*?\/(script|meta|%)>/ 能正常匹配如下文本 <script type="text/javascript">
我是要被删除的脚本
</script>
哎。就剩下我了。

但是,如果使用类似的正则: /<(script|head|%)[\s\S]*?\/(script|head|%)>/ig
匹配有嵌套的标签: <head>
<script type="text/javascript">
我是要被删除的脚本
</script>
</head>
哎。就剩下我了。
 实际匹配的内容是: <head>
<script type="text/javascript">
我是要被删除的脚本
</script>
这是因为[\s\S]*?里的非贪婪造成的。可以使用JavaScript正则里的反向引用来解决这个问题,如果起始标签匹配了head,那么结束标签也必须是head。最后的正则如下: /<(script|head|%)[\s\S]*?\/\1>/ig



 
关于种豆 ┊ 联系我们 ┊ 免责声明 ┊ 发帖须知 ┊ 请提意见 ┊ 站点地图
本站为个人爱好兴趣分享网站,不代表本人观点,如有侵权请联系QQ3371650278进行处理
sowsoy.com 版权所有 Copyright©2010-2020 浙ICP备10212932号
Email:sowsoy#hotmail.com