0

すべての数値に 2 を掛けたい場合はどうすればよいですか? これは正規表現の置換で行うことができますか? $1*2明らかに機能しない部分に注意してください。どうすればいいですか?

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

2 に答える 2

3

あなたが使用することができますpreg_replace_callback

preg_replace_callback('~(\d%)~', function($match) { return $match[1]*2; }, $foo);
于 2012-08-13T18:07:54.017 に答える
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;

?>
于 2012-08-13T18:08:13.377 に答える