PHP用最大值替换字符串中的数字

时间:2014-02-14 12:29:48

标签: php regex

如果匹配模式,我想用字符串中的X替换大于X的任何数字。

X = 4000和匹配函数(?)

的示例

我有一个这样的字符串:

 $code = "function(4500),function(3900),function2(12345)";

我想要一个这样的字符串:

 $code = "function(4000),function(3900),function2(12345)";

我试过这个,但它不起作用:

preg_replace('function\(\d+>4000\)', '4000', $code)

1 个答案:

答案 0 :(得分:2)

您可以在此处使用preg_replace_callback()功能:

$str = 'String "function(4500),function(3900),function(12345)"';
$x = 4000;

$str = preg_replace_callback('/[0-9]+/', function($match) use($x) {
    return min($match[0], $x);
}, $str);

echo $str;

输出:

String "function(4000),function(3900),function(4000)"