Masking all but first letter of a word using Regex(使用Regex掩蔽单词中除第一个字母以外的所有字母)
问题描述
我正尝试在php中创建一个坏单词"过滤",它将分析该单词并与一组已知的坏单词进行匹配,但保留单词的第一个字母,并用星号替换睡觉。示例: 福会变成f* 拍摄将变为%s**
我唯一不知道的部分是如何保留字符串中的第一个字母,以及如何在保持字符串长度不变的情况下将其余字母替换为其他字母。
$string = preg_replace("/(". $word .")/i", "***", $string);
谢谢!
推荐答案
$string = 'fook would become';
$word = 'fook';
$string = preg_replace("~". preg_quote($word, '~') ."~i", $word[0] . str_repeat('*', strlen($word) - 1), $string);
var_dump($string);
这篇关于使用Regex掩蔽单词中除第一个字母以外的所有字母的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!