2014-02-14 29 views
-1

我想用字符串中的X替換大於X的任何數字,如果它與模式匹配的話。PHP用最大值替換字符串中的數字

其中X = 4000和匹配功能實施例

我有這樣的字符串(?):

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

我想是這樣的字符串:

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

我試圖這但它不起作用:

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

需要使用正則表達式是一個合理的猜測。通過一個正則表達式教程(或者查看幾個例子),然後嘗試編寫正則表達式來解決問題,然後回來並詢問有關您的嘗試的具體問題,如果它不起作用。 – Dukeling

回答

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)" 
+1

感謝您的低票!非常感謝 – hek2mgl

+0

不是我......但你的功能正是我所看到的。謝謝 – Umingo

+0

不客氣。沒想到你投了票。我想這是同一個用戶誰低估了你的問題。我已經投了票。這是一個很好的問題,這是很有趣的解決.. :) – hek2mgl