我的字符串如下:
str = "(2+2)^(4*(5+6^(5^6))))";
正如您所看到的,可以将功率嵌套在具有或不具有括号的另一个功率内。
所以我想通过使用regexp来替换^来通过JavaScript的Math.pow(a,b)替换^。
一个想法?非常感谢您,亲切的。
答案 0 :(得分:2)
我认为使用正则表达式来解析表达式对你来说不是很好......
为什么不使用像http://mathjs.org/
这样的数学表达式解析器库答案 1 :(得分:1)
这些是您的算法必须执行的步骤:
^
"炭^
这里的问题是这种类型的数据结构既是递归的又是非常规的......
(2+2)^2
...这使得找到所说的"根^
"问题
此外,输入可能并不总是有效(例如,用户忘记关闭括号)。