REGEX掩盖除第一个和最后一个字符之外的所有字符

时间:2011-05-29 10:35:36

标签: php regex

我想屏蔽除第一个和最后一个字符之外的字符串的所有字符。我试过这样的事情:

<?php
$count = 0;
$string='asdfbASDF1234';
echo preg_replace('/(?!^)\S/', '*', $string, -1 , $count);
?>

除了第一个字符外,它正在屏蔽所有字符。什么是正确的正则表达式?

3 个答案:

答案 0 :(得分:6)

为什么不使用str_repeat()

$length = strlen($in); 
$out = $in[0] . str_repeat('*', $length - 2) . $in[$length-1]; 

答案 1 :(得分:6)

这是你想要的正则表达式:

$string='asdfbASDF1234';
echo $string."\n";
echo preg_replace('/(?!^.?).(?!.{0}$)/', '*', $string);

答案 2 :(得分:-1)

任何人都希望屏蔽所有字母,而不是给定句子中每个字的第一个:

   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;

}