关键词过滤可用字符串原生方法实现:replace()直接替换、in/contains()检测存在、split()拆分后局部屏蔽、find()定位并动态处理,无需复杂库,适合轻量场景。

直接用字符串自带的方法就能实现关键词过滤,不需要引入复杂库或算法,适合快速上手和轻量场景。
用 replace() 替换关键词
这是最直观的方式:把关键词替换成空字符串或掩码(如***)。注意它会替换所有出现位置,且默认区分大小写。
- Python 示例:
text.replace("敏感词", "***") - Java 示例:
text.replace("敏感词", "***")(注意 Java 的replace()是字符/字符串替换,不支持正则;若需忽略大小写,得先转小写再处理,或改用replaceAll()配合(?i)) - 如果要批量替换多个词,可循环调用
replace(),或链式调用:text.replace("A","***").replace("B","***")
用 in 判断是否存在关键词
适用于只做检测、不修改原文的场景,比如内容审核前置判断。
- Python:
if "违禁词" in text:就能快速响应 - Java:
text.contains("违禁词") - 注意:
in和contains()都是子串匹配,无法区分“join”和“joint”,若需精确词边界,得配合空格、标点或正则处理
用 split() + 遍历做局部屏蔽
当需要对特定格式内容(如邮箱、手机号)做字符级遮盖时,拆分后再处理更可控。
- 例如识别邮箱:先
text.split()得到单词列表,再逐个检查是否含@ - 对匹配项用切片或
re.sub()屏蔽局部,如"harry@hogwarts.com"→"****@hogwarts.com" - 避免直接在整段文本中盲目替换,防止误伤正常词汇(如把“邮件”里的“邮”也替换了)
用 find() 定位后动态处理
当你需要知道关键词在哪、出现几次,或按位置做差异化处理(比如只替换第2次出现的词),find() 更灵活。
- Python:
start = text.find("关键词")返回首次索引,-1表示未找到 - 配合
len()和切片可实现自定义掩码长度,比如用"*"*len(keyword)保持星号个数与原词一致 - 循环调用
find(keyword, start+1)可遍历全部位置

















