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

Suj*_*wal 2 php regex

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

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

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

Den*_*rdy 6

为什么不用str_repeat()?

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


gui*_*ido 6

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

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