Javascript RegExp匹配url,但不匹配带有特定单词的url

Javascript RegExp匹配url,但不匹配带有特定单词的url,javascript,regex,Javascript,Regex,我需要匹配javascript中特定类型的url。如果该url匹配,我需要确保该url不包含特定单词。我想匹配没有单词集合的URL 我试图创造一个消极的前瞻,但它不起作用。我可以让它工作一个词,但不是在我搜索的中间。我仍然掌握着消极展望的窍门,所以我肯定我把它搞砸了 例如: http://m.store.com/shop/product/thing-that-has-collection?ID=234&CatID=456 - do not match. http://m.store.co

我需要匹配javascript中特定类型的url。如果该url匹配,我需要确保该url不包含特定单词。我想匹配没有单词集合的URL

我试图创造一个消极的前瞻,但它不起作用。我可以让它工作一个词,但不是在我搜索的中间。我仍然掌握着消极展望的窍门,所以我肯定我把它搞砸了

例如:

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.
这里是我的regExp以匹配所有URL

\/shop\/product\/[\w-]*
我试图破解一个消极的前瞻。我知道这不起作用,我也尝试过这种方法的变体。我猜我在这件事上做错了,但我正在努力

(?!-collection\?)\/shop\/product\/[\w-]*
(?<!-collection\?)\/shop\/product\/[\w-]*
\/shop\/product\/[\w-]*(?<!-collection\?)
(?!-collection\?)\/shop\/product\/[\w-]*
(?
非常感谢

(?!.*?\bcollection\b)\/shop\/product\/[\w-]*
试试这个。看演示


JavaScript正则表达式没有lookbehind。您就快到了。只需在负lookbehind
(?!.--集合\?)中添加
*