在不使用eval()的情况下查找字符串方程的答案

RMc*_*eod 2 php regex eval

我需要一种方法来将一个方程式作为一个字符串给出并找到它的数学答案,最大的警告是我不能使用eval().

我知道方程只会包含数字,四个数学运算符(即*/+ - )和括号,它可能在字符串中有空格,也可能没有空格.这里有几个例子.

4 * 4
4+6/3
(3 / 2)*(4+8)
(4+8) * 2
Run Code Online (Sandbox Code Playgroud)

我猜这是必须要用某种正则表达式完成的?

Wel*_*bog 9

数学表达式不规律.他们没有上下文.

最好的办法是使用众所周知的数学解析算法(如分流码算法)来解析它们.您需要担心的是在PHP中实现该算法.您甚至可以在线找到它的PHP实现.