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