使用Regex掩蔽单词中除第一个字母以外的所有字母 [英] Masking all but first letter of a word using Regex

查看:26
本文介绍了使用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掩蔽单词中除第一个字母以外的所有字母的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆