[英]Php regex for maths equation
我有一个包含数学公式的字符串,如下所示
$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');
但不起作用。
您的正则表达式(\\ d +)\\ w \\ ^ \\ w(\\ d +)不能捕获(x ^ 2),因为它需要在x之前有一个数字,并且在^和\\ d +之间有一个数字。
如果要使某些参数可选,则可以在其后加上“?”。
如果您所有的元素都是(x ^ n)或x ^ n类型,则此正则表达式有效:
$eq = preg_replace('/\(?(\w+)\^(\d+)\)?/', "pow($1, $2)", $eq);
$eq = '(x^2) * (x^3) = x^5';
$replacement = 'pow($1,$2)';
print preg_replace('/\(?(x)\^(\d)\)?+/', $replacement, $eq);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.