我有一个匹配列表中一系列字符的正则表达式,但我想阻止它匹配一个单词。
我的正则表达式是:
^widget/([\w\d~]+)/?(?:[\w\d~]+)/?$
我希望它像这样匹配:
widget/JQYHHU
- 查看小部件,应匹配widget/JQYHHU/
- 查看小部件,应匹配widget/JQYHHU/bag-of-screws
- 查看小部件,应匹配widget/JQYHHU/bag-of-screws/
- 查看小部件,应匹配widget/add
- 查看小部件,不匹配widget/add/
- 查看小部件,不匹配是否可以添加一个条件以匹配字符,但是如果它们拼写单词“add”,则不是吗?
答案 0 :(得分:8)
^widget/(?!add)([\w\d~]+)/?(?:[\w\d~]+)/?$
这是零宽度负前瞻断言;基本上它说“站在我现在的位置,确保如果我期待我不看到模式add
,但是当我完成时不要移动光标位置。”