![正则表达式 - 结合正向和负向前瞻](https://linux22.com/image/1589559/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%20-%20%E7%BB%93%E5%90%88%E6%AD%A3%E5%90%91%E5%92%8C%E8%B4%9F%E5%90%91%E5%89%8D%E7%9E%BB.png)
我具有正则表达式的基本知识,但对前瞻知识却不甚了解:-)
我有以下示例:
<DIV style="overflow: hidden; border-bottom: 1px Solid rgb(192,192,192); position: absolute; left: 5821px; top: 22px; width: 1200px; height: 166px; "><DIV ID="s32" style="position: absolute; left: 8px; top: 2px; width: 1185px; height: 162px; " >
¤<h1>Some text within h1 tags.</h1><<br>¤¤</DIV></DIV>
<DIV style="overflow: hidden; border-bottom: 1px Solid rgb(192,192,192); position: absolute; left: 5821px; top: 22px; width: 1200px; height: 166px; "><DIV ID="s33" style="position: absolute; left: 8px; top: 2px; width: 1185px; height: 162px; " >
<h1>Some text within h1 tags.</h1><<br></DIV></DIV>
<DIV style="overflow: hidden; border-bottom: 1px Solid rgb(192,192,192); position: absolute; left: 5821px; top: 22px; width: 1200px; height: 166px; "><DIV ID="s32" style="position: absolute; left: 8px; top: 2px; width: 1185px; height: 162px; " >
¤<h1>Some text within h1 tags.</h1><<br>¤¤</DIV></DIV>
<DIV style="overflow: hidden; border-bottom: 1px Solid rgb(192,192,192); position: absolute; left: 5821px; top: 22px; width: 1200px; height: 166px; "><DIV ID="s33" style="position: absolute; left: 8px; top: 2px; width: 1185px; height: 162px; " >
<h1>Some text within h1 tags.</h1><<br></DIV></DIV>
我只希望 div id s32 内的文本匹配。我首先尝试使用正向前瞻,看看是否至少可以正确处理这一部分,但
(?<="s32".+)Some text
确实有效,这个
(?<="s32".+¤¤)Some text
不……
我试图理解为什么我没有得到任何匹配?对于上面的例子,我预计会得到 3 个匹配。一旦我理解了这一点,我就可以尝试使用负向前瞻,然后希望只给出 2 个匹配(在 s32 DIV
s 内)。
欢迎任何建议和解释,因为我现在有点迷茫:-)