有如下链接:
<a href="a/b">
<a href="https://abc">
<a href="a/b/">
<a href="http://abc">
<a href="/a/b/">
<a href="tel:abc">
<a href="/a/b">
我使用常规链接收集链接,有必要只选择没有“http”和“https”的链接。但是从一切来看,我不明白lookhead和lookbehind是如何工作的。
试图这样做:
/\<a.+?(href=.?)(?!https).+?\>/
但这不起作用(我想如何,<a href="
如果遇到 https,它会发现并“向前看”,应该丢弃它)。
如何修复表达式以使其工作?
在这些选项中,您可以准确搜索带有“http”和“https”的链接,将标签替换<a>
为有效的标签,<z>
然后搜索如下: /\<a.+?href.+?\>/
. 但我想要第一个选项。
PS我使用了PHP preg_match_all,但我认为语言对于常规赛并不重要(也许我错了)。
您不需要前瞻,而需要后瞻。