
使用正则表达式完整匹配 script 标签内容
问题
如何通过正则表达式捕获到 script 标签中间的内容,例如 php 文件中的第三个 script 标签内容:
var a = 1;
var b = 2;解决方案
可以使用以下正则表达式:
/(<script\b([^"<>]+|"[^"]*")*>)([\s\s]*?)(<\/script>)/g
分析
这个正则表达式由以下部分组成:
-
捕获组 1:开始标签
立即学习“PHP免费学习笔记(深入)”;
(<script\b([^"<>]+|"[^"]*")*>)
匹配 script 标签的开始标签。
-
非捕获组:属性
([^"<>]+|"[^"]*")*
匹配属性,允许引号内的内容。
-
捕获组 2:中间内容
([\s\s]*?)
匹配中间内容,尽可能少匹配。
-
捕获组 3:结束标签
(<\/script>)
匹配 script 标签的结束标签。











