我需要来自html的解析链接,但是那些没有跟随' class =" mw-disambig"'的那些链接。我写了regexp
r'<a href="(.+?)"(?! class="mw-disambig")'
但它仍会解析类似这样的内容
'https://ru.wikipedia.org/wiki/Тюльпан_(значения)" class='
原始HTML:
<a href="here was link" class="mw-disambig" title="Тюльпан"...>
它不应该被添加或者我不理解?
我做错了什么?
答案 0 :(得分:0)
".*?"
并不意味着&#34;恰好匹配引号中包含的最短序列。这意味着&#34;匹配引号中包含的最短序列,其中后面的字符与模式的其余部分匹配&#34;。
因此,当负向前瞻阻止最短匹配时,尝试下一个较长的匹配,结束于class=
之后的引用。在那里,负向前瞻不会触发。
如果您只想匹配不包含引号的带引号的字符串,请显式:
"[^"]*"
(匹配报价,除报价以外的任意数量的字符以及结束报价)。