我试图用正则表达式匹配并提取URL的一部分,除非它是给定的单词。
以下是一些已经可以使用的测试数据:
/api/add --> no match
/api/add/view --> no match
/api/user1 --> matches and extracts "user1"
/api/user1/profile/ --> matches and extracts "user1"
无法运作:
/api/aaa/profile/ --> matches and extracts "aaa"
这是我当前的正则表达式:
/^\/api\/(?:([^\/(add)]+?))\/.*?$/i
我可以按自己的意愿工作,除非它包含“ a”或“ d”而不是整个“ add”一词。
最佳答案
您可以使用此正则表达式:
/^\/api\/(?!add(?:\/|$))([^\/]+)/i
RegEx Demo
在正则表达式中,当您使用
[^\/(add)]+
时,表示除/
以外的任何字符。 (
,a
,d
,)
字符,因为在字符类(即[...]
)中没有分组。