在网页开发和数据抓取过程中,经常需要提取HTML文档中的script标签内容。本文将详细介绍如何使用正则表达式高效准确地捕获完整的script标签及其内容。
最简单的script标签匹配模式如下:
<script[^>]*>([\s\S]*?)</script>
这个模式可以匹配:
<script[^>]*> - 匹配script开始标签及其属性([\s\S]*?) - 非贪婪匹配任意字符(包括换行符)</script> - 匹配结束标签实际应用中需要考虑更多复杂情况:
<script\b[^>]*>((?:(?!</script\b)[\s\S])*)</script\b[^>]*>
这个增强版正则表达式可以处理:
const html = `...您的HTML内容...`;
const regex = /<script\b[^>]*>((?:(?!<\/script\b)[\s\S])*)<\/script\b[^>]*>/gi;
let match;
while ((match = regex.exec(html)) !== null) {
console.log('找到script标签:', match[0]);
console.log('脚本内容:', match[1]);
}
如果正则表达式不能满足需求,可以考虑:
通过本文介绍的正则表达式方法,您可以有效地从HTML文档中提取script标签内容,适用于网页抓取、内容分析和前端开发等多种场景。