我的目标是在两个内部div标签之间以及嵌套标签中的标签之间找到文本
以下是我的文字:
<img src="jhjhjdf.com/1.jpg"><p>sometext</p><div><p>jhasdh</p><div><strong>DONE or lop</strong><br></div><span> jkkhjks dkjh kjs</span></div>
我的目标是仅匹配最里面的div,即
<div><strong>DONE or lop</strong><br></div>
正则尝试1: <div>.*?</div>
现在我正尝试使用<div>.*?</div>
查找所需的
匹配的文本是:(它匹配两个和一个
<div><p>jhasdh</p><div><strong>DONE or lop</strong><br></div>
我期待的是:
<div><strong>DONE or lop</strong><br></div>
所以我使用了错误的正则表达式
正则尝试2: <div>(?!<div>).*?</div>
所以我认为我应该只使用一次负向超前匹配
我尝试了<div>(?!<div>).*?</div>
匹配的文本是:(它匹配两个和一个)
<div><p>jhasdh</p><div><strong>DONE or lop</strong><br></div>
我期待的是:
<div><strong>DONE or lop</strong><br></div>
所以我使用了错误的正则表达式
为什么它不起作用。 <div>(?:<div>)
不应与<div>
之类的两个<div><p>jhasdh</p><div><strong>
相匹配,而应与<div>strong
正则尝试3: <div>(?:(?!<div>).)*?</div>
稍后在网上搜索后,我发现正常的正则表达式为
<div>(?:(?!<div>).)*?</div>
它匹配:
<div><strong>DONE or lop</strong><br></div>
那么(?:(?!<div>).)
的神奇之处是什么,为什么<div>(?:<div>).*?</div>
不起作用。有人可以解释