在网页开发和数据抓取过程中,经常需要提取HTML文档中的JavaScript代码。本文将详细介绍如何使用正则表达式精准匹配script标签及其内容。
最简单的正则表达式可以这样写:
<script[^>]*>([\s\S]*?)</script>
这个表达式可以匹配:
1. 排除注释内容:
<script[^>]*>(?![\s\S]*?<!--)([\s\S]*?)</script>
2. 匹配特定类型的script:
<script[^>]*type=["']text/javascript["'][^>]*>([\s\S]*?)</script>
3. 处理单行模式:
(?s)<script.*?>(.*?)</script>
Python代码示例:
import re
html = """
<html>
<head>
<script type="text/javascript">
// JavaScript代码
var x = 1;
</script>
</head>
</html>
"""
pattern = re.compile(r'<script[^>]*>([\s\S]*?)</script>', re.IGNORECASE)
matches = pattern.findall(html)
for match in matches:
print(match.strip())
通过以上方法,您可以有效地从HTML文档中提取script标签内容。但请记住,对于复杂的HTML解析任务,专业的HTML解析器如BeautifulSoup或DOMParser可能是更好的选择。