繁体   English   中英

PHP正则表达式用于数学方程式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM