我有一个像这样的字符串
[Key1]+[Key2]+[Key3]
我的以下正则表达式返回[Key1]+[Key2]+[Key3]
var re = new RegExp("\\[.+\\]", "g");
var arr = re.exec("[Key1]+[Key2]+[Key3]");
但我想获得[Key1],[Key2],[Key3] ...所有可用的匹配。我怎么能做到这一点?
答案 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(",")
来获取字符串