正则表达式匹配的网址,但没有与特定的字网址

问题描述:

我需要匹配特定类型的网址在JavaScript中。如果该网址是匹配的,我需要确保该网址不包含特定的单词。我想匹配的网址而不是这个词汇集。正则表达式匹配的网址,但没有与特定的字网址

我试图创建一个负面的向前看,但它不工作。我可以让它为单个单词工作,但不在我的搜索中。我仍然得到负面看法的萦绕,所以我确信我搞砸了。

例子:

http://m.store.com/shop/product/thing-that-has-collection?ID=234&CatID=456 - do not match. 
http://m.store.com/shop/product/thing-that-is-something-else?ID=432&CatID=654 - match. 

这里是我的正则表达式匹配所有的URL。

\/shop\/product\/[\w-]* 

我试图破解一个负面预测。我知道这不起作用,我尝试过这种变化。我猜测我对这一切都是错误的,但我正在尝试。

(?!-collection\?)\/shop\/product\/[\w-]* 
(?<!-collection\?)\/shop\/product\/[\w-]* 
\/shop\/product\/[\w-]*(?<!-collection\?) 

非常感谢

+1

JavaScript正则表达式不存在逆序。 – elclanrs 2014-09-25 01:33:22

+0

你快到了。只需在负向视图内添加'。*'(?!。*? - collection \?)'。 – 2014-09-25 01:55:25

(?!.*?\bcollection\b)\/shop\/product\/[\w-]* 

尝试this.see演示。

http://regex101.com/r/qC9cH4/2