我有一个包含数学公式的字符串,如下所示
$eq = '(x^2) * (x^3) = x^5';
我需要替换^
并将值更改为php相关函数
$eq = 'pow(x, 2) * pow(x, 3) = pow(x, 5)';
我试过了:
$eq = preg_replace('/(\d+)\w\^\w(\d+)/', "pow($1, $2)", '(x^2) * (x^3) = x^5');
但没有工作。
答案 0 :(得分:0)
你的正则表达式(\ d +)\ w \ ^ \ w(\ d +)没有捕获(x ^ 2)因为它需要在x之前有一个数字,而在^和\ d +之间有一些数字。
如果你想让一些参数可选,你可以用“?”
作为后缀如果您的所有元素都是(x ^ n)或x ^ n类型,则此正则表达式有效:
$eq = preg_replace('/\(?(\w+)\^(\d+)\)?/', "pow($1, $2)", $eq);
答案 1 :(得分:0)
$eq = '(x^2) * (x^3) = x^5';
$replacement = 'pow($1,$2)';
print preg_replace('/\(?(x)\^(\d)\)?+/', $replacement, $eq);