【问题标题】:RegExp matching url but not url with a specific word正则表达式匹配 url 但不是带有特定单词的 url
【发布时间】: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


【解决方案1】:
(?!.*?\bcollection\b)\/shop\/product\/[\w-]*

试试这个。查看演示。

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

【讨论】:

    猜你喜欢
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-05
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    相关资源
    最近更新 更多