You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用re.sub替换敏感词未全部生效,如何修改代码修复?

禁用词替换代码修复方案

原有代码存在的问题

  • 文件读取逻辑错误:readline()方法仅能读取文件的第一行内容,待处理的文本文件存在多行内容时,除第一行外的所有内容都会丢失,自然无法完成对应替换,这是替换不全的核心原因。
  • 正则模式未做特殊字符转义:如果后续禁用词新增包含.、*这类正则保留字符的内容,会直接导致匹配逻辑异常。

修复后的代码

import re
        
with open("forbidden_words.txt", "r", encoding="utf-8") as stop, open(f'{input()}', 'r', encoding='utf-8') as file:
    # 读取禁用词文件全部内容后拆分
    stop_words = stop.read().strip().split(" ")
    # 读取待处理文件的全部内容,保留原有换行、格式
    text_file = file.read()
    for i in stop_words:
        # 转义禁用词中的正则特殊字符后再替换
        text_file = re.sub(re.escape(i), '*'*len(i), text_file, flags=re.IGNORECASE)
    print(text_file)

可选优化

如果要求仅匹配独立的完整禁用词,不替换其他单词内嵌的禁用词子串(比如不需要把helloworld里的hello替换成*****),可以将正则规则调整为带单词边界匹配的格式:

text_file = re.sub(rf'\b{re.escape(i)}\b', '*'*len(i), text_file, flags=re.IGNORECASE)

内容的提问来源于stack exchange,提问作者pankazimierz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:06:03