【发布时间】:2014-09-25 01:32:47
【问题描述】:
我需要在 javascript 中匹配特定类型的 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.
这是我匹配所有网址的正则表达式。
\/shop\/product\/[\w-]*
我尝试破解负前瞻。我知道这不起作用,我已经尝试过这种方法的变体。我猜我做错了,但我正在努力。
(?!-collection\?)\/shop\/product\/[\w-]*
(?<!-collection\?)\/shop\/product\/[\w-]*
\/shop\/product\/[\w-]*(?<!-collection\?)
非常感谢
【问题讨论】:
-
JavaScript 正则表达式没有lookbehinds。
-
你快到了。只需在负前瞻
(?!.*?-collection\?)中添加.*。
标签: javascript regex