如何使用排除某些单词来制作正则表达式

时间:2014-10-08 22:09:15

标签: regex regex-negation

我想制作与以下网址匹配的正则表达式

http://example/web-design/users/very-bad-user-423512/top
http://example/web-design/users/very-bad-user-423512

但不匹配

http://example/web-design/users/very-bad-user-423512/left
http://example/web-design/users/very-bad-user-423512/right
http://example/web-design/users/very-bad-user-423512/bottom

到目前为止我已尝试过这个

/users/.*/?(?!(left|right|bottom))

它不起作用

1 个答案:

答案 0 :(得分:0)

你的尝试几乎没问题。以下内容适用:

/users/[^/]*?(?:/|$)(?!left|right|bottom)

Regex101

你的正则表达式不起作用,因为最终的/是可选的,并且前瞻可以在/ 之前匹配。我添加了强制执行/或字符串/行结尾的条件:(?:/|$)