我是正则表达式的新手,并且一直在尝试使用javascript匹配应用的网址。
我想要匹配这样的东西:
/some/url/string/(name)
但是还有其他网址使用相同的字符串但是继续
/some/url/string/(name)/some/more
我不想与那些相匹配。
我认为我需要使用'[^/]'
或'(?!/)'
来匹配(姓名)字段,而不需要跟随'/'
,但我没有成功。
目前我用这个:
'/some/url/string/\\S*'
但这符合我不想匹配的较长网址
答案 0 :(得分:2)
编辑更新代码以更好地回答问题,请参阅以下评论。
你真是太近了。您只需添加+
量词。您的第一次尝试(使用[^/]
)仅查找单个下一个字符,而不是多个字符,直到斜杠。
\/some\/url\/string\/[^\/]+$
(我添加了反斜杠(\
)以逃避正斜杠(/
))。
请参阅here上的工作示例。
答案 1 :(得分:1)
你不需要定期表达来实现它,你可以试试这个:
string.split('/')[4];
如果您正在寻找完整路径,可以使用:
string.split('/').slice(0,5).join('/');
答案 2 :(得分:-1)
试试这个:
/some/url/string/[a-z]+