怎么能用正则表达式得到最后一次出现的[0]?

时间:2014-09-21 04:20:00

标签: javascript regex last-occurrence

我正试图让最后一次出现这种情况。

obj.foo[0].bar[0].name

我尝试使用此代码,但刚刚获得第一个[0],如果我将$放在最后,则无效。

\[(\d+)\](?:(?!\[\d+\]))

2 个答案:

答案 0 :(得分:2)

你必须在比赛结束后断言另一个同一组不能某处,而不是紧接着。看到这个修改:

\[(\d+)\](?!.*?\[\d+\])
            ^^^

或者您可以切换到回溯方法:

.*\[(\d+)\]

这是第一个正则表达式的regex demohere是另一个正则表达式。

答案 1 :(得分:1)

根据您是否需要括号,您可以使用以下内容:

var r = s.match(/\[\d+\]/g)[1]

如果您不想使用分隔符,可以将它们从组索引中分割出来。

var r = s.match(/\[\d+\]/g)[1].slice(1,-1)