Javascript 捕获正则表达式的一个或多个实例(由捕获组之外的字符表示)?

Javascript 捕获正则表达式的一个或多个实例(由捕获组之外的字符表示)?,javascript,regex,Javascript,Regex,我正在寻找一个正则表达式来捕获一个或多个由一对方括号表示的字符串(在javascript中)。我如何做到这一点 备选标题大小写包括:“[string A]部分文本[string B]”和“[string A]且无字符串B” 谢谢您需要创建或使用否定字符类而不是*: var title = '[string A][string B] the rest of the title' var myRegexp = /\[(.*)\]/g; var match = myRegexp

我正在寻找一个正则表达式来捕获一个或多个由一对方括号表示的字符串(在javascript中)。我如何做到这一点

备选标题大小写包括:“[string A]部分文本[string B]”和“[string A]且无字符串B”

谢谢

您需要创建或使用否定字符类而不是
*

    var title = '[string A][string B] the rest of the title'
    var myRegexp = /\[(.*)\]/g;
    var match = myRegexp.exec(title);
    console.log(match);  // prints: 'string A][string B', and not: 'string A', 'string B'
演示:


演示:

您需要在循环中调用
exec
,以获得与此正则表达式的多个匹配项:

/\[[^\]]*\]/g
/\[[^\]]*\]/g
var re = /\[([^\]]*)/g; 
var str = '[string A][string B] the rest of the title';
var m;
var matches = [];

while ((m = re.exec(str)) !== null) {
    if (m.index === re.lastIndex)
        re.lastIndex++;
    matches.push(m[1]);
}

console.log(matches);
//=> ["string A", "string B"]