我在下面有这些变量:
let x = '5(2+1(3(4-1))';
let y = [];
我需要提取()
和之间的任何字符串push到array
输出如下:
console.log(y); // Array should be y[4-1,3,2+1,5]
我该如何解决这个问题?
试试这个正则表达式
let x = '5(2+1(3(4-1))';
let y = [];
let regex = /(?(d+([+-]d+)?)/gm;
let m
while ((m = regex.exec(x)) !== null) {
y.push(m[1])
}
y = y.reverse()
console.log(y)
这可以通过递归地应用正则表达式获取并替换内部的most()对,直到只剩下最后5个,或者通过构建一个真正的解析器来实现。
根据输入的外观,regex可能无法工作。
但是没有简单的解决办法,这取决于你得到的是什么格式。