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