2017-10-21 94 views
0
$my_string = '88888805'; 
echo preg_replace("/(^.|.$)(*SKIP)(*F)|(.)/","*",$,my_string); 

這說明像這樣8 ****** 5 第一和最後一個數字,但我該怎麼讓這個數字是這樣888888 **。 (最後2位數字隱藏)的PHP的preg_replace數字字符

謝謝!

From this: 8******5 
To: 888888** 

回答

2

我不知道你是否曾在這個正則表達式模式下做一些獨特的事情。但是,我會爲您提供一個適合您的問題而不使用當前模式的通用方法。

$my_string = '88888805'; 
echo preg_replace("/([0-9]+)[0-9]{2}$/","$1**",$,my_string); 

說明:

([0-9]+)將匹配所有的數字,這可能是與\d+被替換,這是因爲我們要在結果使用它來捕獲括號內。

[0-9]{2}將匹配最後2位數字,它可以替換爲\d{2},因爲我們不想將它們包含在結果中,所以它不在括號內。在此之後的$是指示測試結束,反正它是可選的。

結果:

Input: 88888805 
Output: 888888** 
0
echo preg_replace("/(.{2}$)(*SKIP)(*F)|(.)/","*",$my_string); 

如果UNI端口分配,你可能想這樣做。基本上說,如果它的最後兩個字符不匹配,否則匹配。