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

PHP将字符串中的数字替换为最大值,php,regex,Php,Regex,我想用字符串中的X替换任何大于X的数字,如果它与模式匹配 X=4000且匹配函数(?)的示例 我有这样一个字符串: $code = "function(4500),function(3900),function2(12345)"; $code = "function(4000),function(3900),function2(12345)"; 我想要这样的字符串: $code = "function(4500),function(3900),function2(12345)";

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

X=4000且匹配函数(?)的示例

我有这样一个字符串:

 $code = "function(4500),function(3900),function2(12345)";
 $code = "function(4000),function(3900),function2(12345)";
我想要这样的字符串:

 $code = "function(4500),function(3900),function2(12345)";
 $code = "function(4000),function(3900),function2(12345)";
我尝试过这个,但不起作用:

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

您可以在此处使用函数
preg\u replace\u 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)"

需要使用正则表达式是一个合理的猜测。完成一个正则表达式教程(或者看几个例子),然后试着写一个正则表达式来解决这个问题,然后回来问一个关于你的尝试的问题,如果它不起作用。不是我。。。但你的函数正是我所看到的。谢谢,不客气。没想到你投了反对票。我猜是同一个用户否决了你的问题。我投了赞成票。这是一个很好的问题,解决起来很有趣……)