我正在尝试解析一个或多个括号之间的所有文本并返回一个数组.
例如:
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.
.match()如果使用global修饰符,将仅返回整个匹配数组.请改用.exec() [MDN]:
var match,
results = [];
while(match = regex.exec(string)) {
results.push(match[1]);
}
Run Code Online (Sandbox Code Playgroud)