正则如何完整匹配script标签的中间内容?
PHP文件如下:
<script src="static/js/jsencrypt.js?v=<?= WEB_VERSION ?>"></script>
<script src="static/js/jquery.form.js?v=<?= WEB_VERSION ?>"></script>
<script type="text/javascript">
var a = 1;
var b = 2;
</script>
如何通过正则表达式捕获到script
标签中间部分的内容,例如 第三个script
标签内容为:
var a = 1;
var b = 2;
我自己写了的一段正则:/(<script\b[^>]*>)([\s\S]*?)(<\/script>)/gm
这段正则只能匹配script
标签属性不插入>
的情况,如果script
标签属性插入了>
就会匹配错误。
回复
1个回答

test
2024-06-21
属性中含有引号就排除引号干扰
/(<script\b([^"<>]+|"[^"]*")*>)([\s\S]*?)(<\/script>)/g
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容