如何在javascript中解析一个或多个括号之间的所有正则表达式

Jam*_*mie 1 javascript regex

我正在尝试解析一个或多个括号之间的所有文本并返回一个数组.

例如:

var string = "((CID:34746) OR (CID:8097)) ((CID:34277 OR CID:67300))";
var regex = /\(([^()]+)\)/g;
var results = string.match(regex);
// should result in ["CID:34746","CID:8097","CID:34277 OR CID:67300"]
// but instead is ["(CID:34746)", "(CID:8097)", "(CID:34277 OR CID:67300)"]
Run Code Online (Sandbox Code Playgroud)

我的团队中有3个人试图找到解决方案而没有人.我已经看过所有可以在SO上找到的东西了.(这是我发布上述正则表达式的地方 ......)

我得到的最接近的是:/([^()] +)/ g.

Fel*_*ing 5

.match()如果使用global修饰符,将仅返回整个匹配数组.请改用.exec() [MDN]:

var match,
    results = [];

while(match = regex.exec(string)) {
    results.push(match[1]);
}
Run Code Online (Sandbox Code Playgroud)