所以我试图获取包含特定字符串的网址,同时避免包含错误字符串的网址。
所以我不希望任何包含字符串“/ inventory / all /”的网址,我只想要包含字符串“/ inventoryories /”或“/ inventory / 2017 /”的网址
所以我设法至少排除了包含“/ inventory / all /”字符串的网址:
get_urls = soup.findAll('a', href=re.compile('^(?!.*/inventory/all/).*$'))
但是当我尝试包含我想要的字符串时,它就不再有效了,我试过:
get_urls = soup.findAll('a', href=re.compile('^(?!.*/inventory/all/).*$'|/inventories/|/inventory/2017/'))
谢谢你的帮助,我是新手
你可以使用以下正则表达式:
^(?=.*inventor(?:ies|y/2017))^(?:(?!inventory/all).)+$
^(?=.*inventor(?:ies|y/2017))
这是一个展望未来,确保我们只是寻找inventories
或inventory/2017
的字符串。对于较少的回溯,你需要锚定它,即^
,它表明匹配应该从句子的开头开始。因此,只做^.*inventor(?:ies|y/2017).*$
就足够了,因为所选择的只有两个。^(?:(?!inventory/all).)+$
这部分是一个负向前看,断言从字符串的开头到字符串的结尾没有inverntory/all
。我添加了这个部分,以防您找到格式为inventoy/2017/inventory/all
的字符串。这将被删除。