Javascript 正则表达式将所有最外层的括号对匹配到数组中

Javascript 正则表达式将所有最外层的括号对匹配到数组中,javascript,regex,ecmascript-6,Javascript,Regex,Ecmascript 6,我想要一个正则表达式将所有最外层的括号对匹配到数组中,即使它们的内容可以嵌套。 这是我的密码 这就产生了预期的产出 console.log("52*((6*8)-4+3^(7+5))".match(/ *(\([^]*\)) */g)) /* => [ '((6*8)-4+3^(7+5))' ] correct*/ console.log("52*(6*8)-4+3^(7+5)".match(/ *(\([^]*\)) */g)) /* => [ '(6*8)-4+3^(7+5)

我想要一个正则表达式将所有最外层的括号对匹配到数组中,即使它们的内容可以嵌套。 这是我的密码

这就产生了预期的产出

console.log("52*((6*8)-4+3^(7+5))".match(/ *(\([^]*\)) */g)) /* => [ '((6*8)-4+3^(7+5))' ]  correct*/
console.log("52*(6*8)-4+3^(7+5)".match(/ *(\([^]*\)) */g)) /* => [ '(6*8)-4+3^(7+5)' ] incorrect expected [ '(6*8)', '(7+5)' ]*/
但是

这不会给出预期的输出

console.log("52*((6*8)-4+3^(7+5))".match(/ *(\([^]*\)) */g)) /* => [ '((6*8)-4+3^(7+5))' ]  correct*/
console.log("52*(6*8)-4+3^(7+5)".match(/ *(\([^]*\)) */g)) /* => [ '(6*8)-4+3^(7+5)' ] incorrect expected [ '(6*8)', '(7+5)' ]*/

如果有人理解这个问题,请帮助我

\/(.*)/)\g
尝试一下。除了滥用正则表达式的特性,将其提升到正则表达式之上,解析深度未知的嵌套方括号是不可能的。@Alex我刚刚尝试过,但它仍然显示了与上述相同的内容。注意:解析数学表达式通常是通过依次计算最里面的方括号来完成的,这是可能的,因为您不必关心可能嵌套的方括号。当然,使用regex以外的东西以您想要的方式解析它也是一种选择。