如何使用星号替换字符串的一部分?

3

使用preg_replace(),我想要替换这样的字符串...

aaabbbccc => aaa******
cccdddfff => ccc******
234456789 => 234******
12wcced => 12w*****
123cde => 123***

我该如何使用正则表达式和 preg_replace() 来实现这个功能呢?
2个回答

7
echo substr($string, 0, 3) . str_repeat('*', max(0, strlen($string) - 3));

不完全是preg_replace,但是...

2
假设使用 PHP 5.3 或以上版本。
$str = 'abcdefg';

$str = preg_replace_callback('/^(.{3})(.*)$/', function($matches) {
   return $matches[1] . str_repeat('*', strlen($matches[2]));
}, $str);

echo $str; // abc****

CodePad

不过,仅针对像您的示例这样的字符串执行此操作可以通过使用Deceze的答案更好地实现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接