我有以下字符串:/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"]
。
任何想法有什么不对?
答案 0 :(得分:3)
首先出错的是使用错误的工具。
只需在/
上拆分,就不需要正则表达式。
'/v0/lifts/0626df905120f6d6/refs/8f23576e6838b528'.split('/')[3]; //0626df905120f6d6
现在,如果您确实想使用正则表达式,请改用match
:
'/v0/lifts/0626df905120f6d6/refs/8f23576e6838b528'.match(/([^/]*)\w+/g) //["v0", "lifts", "0626df905120f6d6", "refs", "8f23576e6838b528"]
exec
仅在每次匹配时有多个捕获组时才有用。