我有以下字符串:/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仅在每个比赛中有多个捕获组时才有用。

07-24 22:01