如果我想将所有数字乘以 2 怎么办?这可以通过正则表达式替换来完成吗?请注意$1*2
显然不起作用的部分。我该怎么做?
$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;
?>