使用正则表达式获取第二个括号内容

时间:2014-12-27 12:41:54

标签: javascript regex

我想修改以下DOM的第二个方括号的内容

extra_fields_setting_name[1][0][extra_fields_setting_name_label]

我使用以下内容更改dom第一个括号的内容,如下所示

replace ( /\[[^\]]+\]/, "[" + (new_number_here) + "]" );

但是我不能像第一个那样获得第二个括号内容,我该怎么做?

2 个答案:

答案 0 :(得分:2)

您可以使用:

(\[[^\]]+\])\[([^\]]+)\]

匹配的组#2将为您提供第二个括号的内容。

RegEx Demo

答案 1 :(得分:2)

如果这是您的确切输入,您可以尝试以下正则表达式(使用positive lookahead assertion )仅匹配第二个方括号的内容。

[^\[\]]+(?=\]\[[^\]]+\]$)

DEMO

示例:

> var s = "extra_fields_setting_name[1][0][extra_fields_setting_name_label]"
undefined
> s.replace(/[^\[\]]+(?=\]\[[^\]]+\]$)/, "x")
'extra_fields_setting_name[1][x][extra_fields_setting_name_label]'