Javascript正则表达式只返回一次出现

时间:2014-08-08 11:41:20

标签: javascript regex

我有一个像这样的字符串

[Key1]+[Key2]+[Key3]

我的以下正则表达式返回[Key1]+[Key2]+[Key3]

var re = new RegExp("\\[.+\\]", "g");
var arr = re.exec("[Key1]+[Key2]+[Key3]");

但我想获得[Key1],[Key2],[Key3] ...所有可用的匹配。我怎么能做到这一点?

2 个答案:

答案 0 :(得分:3)

使用非贪婪修饰符:

var re = new RegExp("\\[.+?\\]", "g");
//                 here __^

re.exec仅提供第一场比赛,如果您想要所有比赛,则必须使用string.match(re)

var string = "[Key1]+[Key2]+[Key3]"; 
var re = new RegExp("\\[.+?\\]", "g");
var arr = string.match(re);

然后arr包含["[Key1]", "[Key2]", "[Key3]"]

答案 1 :(得分:1)

var str = "[Key1]+[Key2]+[Key3]"; 
var res = str.match(/\[.+?\]/g);

res 包含一系列匹配项,您可以使用res.join(",")来获取字符串

相关问题