我想从维基百科收集所有不包含冒号的链接。但是当使用正则表达式时,出于某种原因,一切都没有按预期工作。
html = request.urlopen('https://ru.wikipedia.org/wiki/')
soup = BeautifulSoup(html, 'lxml')
all_links = soup.find_all('a', {'href': re.compile('[^:]')})
元素之一的示例all_links
<a href="https://www.mediawiki.org/">
问题是什么?
您的正则表达式对至少 1 个字符不等于的所有字符串均有效
:。为了将条件重写为“整行不包含:”,您可以在行首和行尾添加“锚点”,以及添加量词+(一个或多个字符)。