2012-08-13 102 views
0

如果我想將所有數字乘以2,該怎麼辦?這可以用正則表達式替換嗎?請注意0​​部分顯然不起作用。我將如何做到這一點?PHP preg_replace與邏輯?

$foo = "soup 12 cake 23 pants"; 
$bar = preg_replace('~(\d+)~', $1*2, $foo); 
+0

變量名稱不能是數字。 – Leri 2012-08-13 18:05:21

+0

你可以使用preg_replace_callback – knittl 2012-08-13 18:05:51

+0

@PLB是的,這很可愛。閱讀問題。 – 2012-08-13 18:06:20

回答

2

嘗試使用preg_replace_callback(...)函數

<?php 

function mulBy2($match) { 
    return $match[1] * 2; 
} 

$foo = "soup 12 cake 23 pants"; 
$bar = preg_replace_callback('~(\d+)~', "mulBy2", $foo); 

echo $bar; 

?>