我有以下字符串:/v0/lifts/0626df905120f6d6/refs/8f23576e6838b528
。我试图获取第三个URL字符串,所以编写了以下RegEx:/([^/]*)\w+/g
。根据Regexr,这应该为match all parts of the URL。
然后,使用Javascript,我尝试访问第三个数组元素:
var key = /([^/]*)\w+/g.exec('/v0/lifts/0626df905120f6d6/refs/8f23576e6838b528')[2];
但是,这是不确定的。如果您将其结果(作为JSON)打印,则会得到
["v0","v"]
。有什么想法怎么了?
最佳答案
第一件错误的事情是使用错误的工具进行这项工作。
只需在/
上拆分,就不需要正则表达式。
'/v0/lifts/0626df905120f6d6/refs/8f23576e6838b528'.split('/')[3]; //0626df905120f6d6
现在,如果您确实想使用正则表达式,请改为使用
match
:'/v0/lifts/0626df905120f6d6/refs/8f23576e6838b528'.match(/([^/]*)\w+/g) //["v0", "lifts", "0626df905120f6d6", "refs", "8f23576e6838b528"]
exec
仅在每个比赛中有多个捕获组时才有用。