我试图用正则表达式匹配并提取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)]+时,表示除/以外的任何字符。 (ad)字符,因为在字符类(即[...])中没有分组。

07-25 23:12
查看更多