Javascript 在多个括号之间提取文本

Javascript 在多个括号之间提取文本,javascript,Javascript,我有以下变量: let x = '5(2+1(3(4-1))'; let y = []; 我需要提取()和之间的任何字符串,并将推送到数组以进行如下输出: console.log(y); // Array should be y[4-1,3,2+1,5] 如何解决这个问题?这可以通过递归应用正则表达式获取并替换最里面的()对,直到只剩下最后5对,或者通过构建真正的解析器来实现 根据输入的外观,regex可能无法工作 但是不存在简单的解决方案,这将取决于您可能获得的格式。尝试使用此正则表达式

我有以下变量:

let x = '5(2+1(3(4-1))';
let y = [];
我需要提取
()
之间的任何字符串,并将
推送到
数组
以进行如下输出:

console.log(y); // Array should be y[4-1,3,2+1,5]

如何解决这个问题?

这可以通过递归应用正则表达式获取并替换最里面的()对,直到只剩下最后5对,或者通过构建真正的解析器来实现

根据输入的外观,regex可能无法工作

但是不存在简单的解决方案,这将取决于您可能获得的格式。

尝试使用此正则表达式

x='5(2+1(3(4-1));
设y=[];
设regex=/\(?(\d+([+-]\d+))/gm;
让我
while((m=regex.exec(x))!==null){
y、 推送(m[1])
}
y=y.反向()

console.log(y)
使用RDP:解析带括号的算术表达式:鉴于展平结构不代表原始表达式的嵌套或它们之间的任何关系,您不妨使用
x.split(/\(|\)/g)