3

我有一个匹配列表中一系列字符的正则表达式,但我想阻止它匹配一个单词。

我的正则表达式是:

^widget/([\w\d~]+)/?(?:[\w\d~]+)/?$

我希望它像这样匹配:

  • widget/JQYHHU- 查看小部件,应该匹配
  • widget/JQYHHU/- 查看小部件,应该匹配
  • widget/JQYHHU/bag-of-screws- 查看小部件,应该匹配
  • widget/JQYHHU/bag-of-screws/- 查看小部件,应该匹配
  • widget/add- 查看小部件,不应匹配
  • widget/add/- 查看小部件,不应匹配

是否可以添加条件以匹配字符,但如果它们拼写单词“add”则不行?

4

1 回答 1

9
^widget/(?!add)([\w\d~]+)/?(?:[\w\d~]+)/?$

这是一个零宽度的负前瞻断言;基本上它说“站在我现在的位置,确保如果我向前看,我看不到图案add,但完成后不要移动光标位置。”

在这里阅读:http ://www.regular-expressions.info/lookaround.html

于 2012-04-28T13:35:02.123 回答