0
如果我想將所有數字乘以2,該怎麼辦?這可以用正則表達式替換嗎?請注意0部分顯然不起作用。我將如何做到這一點?PHP preg_replace與邏輯?
$foo = "soup 12 cake 23 pants";
$bar = preg_replace('~(\d+)~', $1*2, $foo);
如果我想將所有數字乘以2,該怎麼辦?這可以用正則表達式替換嗎?請注意0部分顯然不起作用。我將如何做到這一點?PHP preg_replace與邏輯?
$foo = "soup 12 cake 23 pants";
$bar = preg_replace('~(\d+)~', $1*2, $foo);
你可以使用preg_replace_callback
:
preg_replace_callback('~(\d%)~', function($match) { return $match[1]*2; }, $foo);
嘗試使用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;
?>
變量名稱不能是數字。 – Leri 2012-08-13 18:05:21
你可以使用preg_replace_callback – knittl 2012-08-13 18:05:51
@PLB是的,這很可愛。閱讀問題。 – 2012-08-13 18:06:20