正则表达式匹配特定的标签

如题,我想匹配特定条件的标签

<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即可。望采纳