我有一个正则表达式,它匹配列表中的一系列字符,但我想阻止它匹配单词。
我的正则表达式是:
^widget/([wd~]+)/?(?:[wd~]+)/?$
我希望它像这样匹配:
-
widget/JQYHHU
- 视图小部件,应匹配 -
widget/JQYHHU/
- 视图小部件,应匹配 -
widget/JQYHHU/bag-of-screws
- 视图小部件,应匹配 -
widget/JQYHHU/bag-of-screws/
- 视图小部件,应匹配 -
widget/add
- 视图小部件,不应匹配 -
widget/add/
- 视图小部件,不应匹配
是否可以添加条件以匹配字符,但如果它们拼写单词"add"则不能?
^widget/(?!add)([wd~]+)/?(?:[wd~]+)/?$
这是一个零宽度的负前瞻断言;基本上它说"站在我现在的位置,确保如果我向前看,我看不到add
的模式,但在完成后不要移动光标位置。
在这里阅读它: http://www.regular-expressions.info/lookaround.html