如何让正则表达式匹配首个<h1>后继续搜索,获取多个完整<h1>标签
解决正则匹配独立
标签的问题
你遇到的是正则贪婪匹配的问题:默认情况下.*会尽可能匹配最长的内容,所以从第一个<h1>开始,一直匹配到最后一个</h1>才结束。
改成非贪婪模式就能解决,把正则改成:
<h1.*?</h1>
原理说明
.*是贪婪量词,会匹配任意字符(除换行符)直到遇到最后一个符合条件的</h1>- 在
.*后加?就变成了非贪婪量词,会匹配最短的符合条件的内容,也就是遇到第一个</h1>就停止匹配,这样就能分别捕获每个独立的<h1>标签。
用你提供的测试内容:
<h1 style=""></h1><span> alsjd alkj dalsd a</span><h1>asdsadsa</h1>
使用修改后的正则,就能得到两个独立的匹配结果:
<h1 style=""></h1><h1>asdsadsa</h1>
内容的提问来源于stack exchange,提问作者Surinder
相关产品推荐
相关产品推荐

