我需要创建一个正则表达式模式,该模式将匹配包含String1但不包含String2的所有url。问题是URL可以包含String1和String2。例如,如果抓取电子商务网站,我想收集目录页面而不获取产品网址。
示例目录URL:http://www.domain.com/catalog/name String1:catalog
示例产品网址:http://www.domain.com/catalog/name/product/id => String2:产品
使用上面的示例网址,String1是“catalog”,String2是“product”。我目前获取目录网址的模式是\/catalog(?:\/[\w-\/]*)?$
如何扩展此模式以跳过包含String2的所有URL?
答案 0 :(得分:0)
我猜您正在寻找negative look ahead
例如,这个正则表达式:
catalog\/name\/(?!product)
匹配(example):
http://www.domain.com/catalog/name/produc/id
但是,它不匹配(example):
http://www.domain.com/catalog/name/product/id
希望这有帮助!