[英]use preg_replace to replace whole words using associative array
我有一個名為$initialdata
替換數組:
array ($initialdata)
'd' => string '1.40' (length=4)
'a' => string '1.67' (length=4)
'vi' => string '0' (length=1)
't' => string '?' (length=1)
然后我有這個字符串:
$str = "-(vi + sqrt(2*a*d + vi^2))/a)";
當我做 :
str_replace(array_keys($initialdata),array_values($initialdata),$str);
我得到:
-(0 + sqr?(2*1.67*1.40 + 0^2))/1.67)
發生的事情是“sqrt”的“t”被我的$initialdata
數組中的“t”值所取代。 我知道發生這種情況是因為我正在使用str_replace
,我需要使用preg_replace
來匹配整個單詞,但是我從未看到使用關聯數組來匹配任何整個單詞的preg_replace
任何實現。 如果可能,如何實現?
在正則表達式中, \\b
是單詞邊界。 這應該工作:
$data = array(
'/d/' => '1.40',
'/a/' => '1.67',
'/vi/' => '0',
'/\bt\b/' => '?'
);
$result = preg_replace(array_keys($data), array_values($data), $str);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.