Javascript 如何使用正则表达式获取[0]的最后一次出现?

Javascript 如何使用正则表达式获取[0]的最后一次出现?,javascript,regex,last-occurrence,Javascript,Regex,Last Occurrence,我想知道最后一次发生的情况 obj.foo[0].bar[0].name 我尝试了这段代码,但只得到了第一个[0],如果我把$放在末尾,那就行不通了 \[(\d+)\](?:(?!\[\d+\])) 你必须声明,另一个相同的组不能在比赛之后的某个地方,而不仅仅是在比赛之后。请参阅此修改: \[(\d+)\](?!.*?\[\d+\]) ^^^ 或者,您可以切换到回溯方法: .*\[(\d+)\] 这是第一个正则表达式的一个,另一个正则表达式的一个。根据您是否希望包

我想知道最后一次发生的情况

obj.foo[0].bar[0].name
我尝试了这段代码,但只得到了第一个
[0]
,如果我把
$
放在末尾,那就行不通了

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

你必须声明,另一个相同的组不能在比赛之后的某个地方,而不仅仅是在比赛之后。请参阅此修改:

\[(\d+)\](?!.*?\[\d+\])
            ^^^
或者,您可以切换到回溯方法:

.*\[(\d+)\]

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

根据您是否希望包含括号,您可以使用以下命令:

var r = s.match(/\[\d+\]/g)[1]
如果不需要分隔符,可以从组索引中分割它们

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

我也喜欢第二种方法plusMe,第一种方法需要额外的时间来断言同一组多次缺席,该部分无法优化。另一方面,回溯可以更快地完成任务,特别是当比赛距离较远时。非常感谢!!它对我有用。。。我用它来替换!我想在这种方法中,捕获组不一定要在那里。