我想屏蔽除第一個和最後一個字符之外的所有字符。我試過這樣的:REGEX屏蔽除第一個和最後一個字符以外的所有字符
<?php
$count = 0;
$string='asdfbASDF1234';
echo preg_replace('/(?!^)\S/', '*', $string, -1 , $count);
?>
這是屏蔽除第一個以外的所有字符。什麼是適當的正則表達式?
我想屏蔽除第一個和最後一個字符之外的所有字符。我試過這樣的:REGEX屏蔽除第一個和最後一個字符以外的所有字符
<?php
$count = 0;
$string='asdfbASDF1234';
echo preg_replace('/(?!^)\S/', '*', $string, -1 , $count);
?>
這是屏蔽除第一個以外的所有字符。什麼是適當的正則表達式?
這是你想要的正則表達式:
$string='asdfbASDF1234';
echo $string."\n";
echo preg_replace('/(?!^.?).(?!.{0}$)/', '*', $string);
爲什麼不使用str_repeat()
?
$length = strlen($in);
$out = $in[0] . str_repeat('*', $length - 2) . $in[$length-1];
+1幾百倍比我快,給定足夠長的字符串。 – lonesomeday 2011-05-29 10:59:44
從我這裏得到+1這樣一個美妙的邏輯。 – 2011-05-29 14:57:49
確保len應該至少有2個字符。 @denis – marlo 2016-12-13 05:09:24
任何人尋找掩蔽所有字母,但首先給出一句話每一個字:
function maskele($in){
$kelimeler=explode(" ",$in);
$isim=null;
foreach ($kelimeler as $kelime){
$length = strlen($kelime);
$out = $kelime[0] . str_repeat('*', $length - 1) ;
$isim.=$out. " ";
}
return $isim;
}
這不是問題的問題,這是什麼問題已經有**和**不想要**。 – Ajean 2017-12-15 20:56:03
此答案被標記爲正確,因爲它直接與問題相關。但丹尼斯提供的備選答案也是一個不錯的選擇。 – 2011-05-29 14:57:23
這種方式,它取代了所有,但第一次給我,就像這樣:/(?!.??))((?!.?$)/保持最後一個 – user109764 2016-01-06 15:54:04