在处理HTML文档时,正则表达式是一种强大的工具,但要精准提取标签内容需要特别注意HTML的结构特性。以下是几种常见场景的解决方案:
// 提取所有<p>标签内容
<p[^>]*>(.*?)<\/p>
// 提取带class的div内容
<div\s+class="content"[^>]*>(.*?)<\/div>
对于嵌套结构,建议使用非贪婪匹配:
// 非贪婪匹配提取最内层内容
<div>.*?<p>(.*?)<\/p>.*?<\/div>
// 提取href属性
href=["'](.*?)["']
// 提取特定ID的标签内容
<div\s+id="main"[^>]*>([\s\S]*?)<\/div>
// 忽略大小写匹配
/<h1>(.*?)<\/h1>/i
对于生产环境,建议结合使用正则表达式和HTML解析器(如BeautifulSoup)以获得更好的稳定性和准确性。