如题,我想匹配特定条件的标签
<div>
<p>
<h1>内容1</h1>
</p>
</div>
<div>
<p>
<h1>内容2</h1>
</p>
</div>
<div>
<p>
<h1>内容3</h1>
</p>
</div>
我想要匹配如上代码中的内容3的div标签,该如何写正则表达式?
<div>([\s\S]*?)<p>([\s\S]*?)<h1>(.*?)</h1>([\s\S]*?)</p>([\s\S]*?)</div>
取第三个匹配文本的第三个子匹配文本 就是内容3
re.findall(r"<h1>(.*)</h1>",s)[2]
document.querySelector("body > div:nth-child(3) > h1")
建议html处理使用jsoup
如果是页面解析做爬虫的话建议使用XPath语法,很简单的https://www.runoob.com/xpath/xpath-tutorial.html,如果只是单纯的使用正则匹配的话只能帮你找到h1中的内容:
\<h1\>(.*)\<\/h1\>
取$1即可。望采纳