php 能否用preg_replace()函数把字符串第一个字符和最后一个字符之间的每一个字符替换为*?

php 能否用preg_replace()函数把字符串第一个字符和最后一个字符之间的每一个字符替换为*?

比如:ABCD替换为A**D

    $str = 'ABCD';
    echo substr_replace($str, str_repeat('*', strlen($str)-2), 1, strlen($str)-2);

感觉用substr_replace更方便。代码如下:

$string = 'ABCD';
echo substr_replace($string,str_repeat('*', strlen($string)-2),1,-1);