通过PHP中的函数动态替换

时间:2016-11-06 09:01:36

标签: php regex string preg-replace preg-replace-callback

有没有办法动态替换函数,类似于.replace在JavaScript中的工作方式?一个类似的用例是我有一个带数字的字符串,我想通过函数传递数字:

"1 2 3" => "2 4 6"  (x2)

当前preg_replace函数似乎不支持参数的函数。

作为参考,在JavaScript中它可以实现如下:

var str = "1 2 3";
str.replace(/\d+/g, function(num){
    return +num * 2;
});

1 个答案:

答案 0 :(得分:2)

您应该使用具有正则表达式匹配回调的preg_replace_callback()。您可以在回调函数中乘以匹配的数字。

$newStr = preg_replace_callback("/\d+/", function($matches){
    return $matches[0] * 2;
}, $str); 

检查demo

中的结果