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

Python如何基于replace.txt规则替换字符串内HTML特殊字符

Python基于规则文件替换特殊字符实现方案

场景说明

需要读取replace.txt中存储的替换规则,替换目标文本中的左弯引号(对应HTML编码“)、右弯引号”特殊字符为普通双引号。

现有配置

  • replace.txt规则内容(每行空格分隔待替换内容、替换目标):
    “ "
    ” "
    
    注:原配置中写的"是双引号的HTML实体表示,实际替换目标为普通半角双引号"
  • 待处理测试字符串:
    string = 'Biden Brags About Handing Out “Record” Number of Work Visas to Foreigners'
    

实现代码

1. 读取替换规则

读取规则文件时指定UTF-8编码,避免特殊字符乱码,逐行解析生成替换映射字典:

replace_map = {}
# 指定utf-8编码读取文件,防止弯引号乱码
with open('replace.txt', 'r', encoding='utf-8') as f:
    for line in f:
        line = line.strip()
        if not line:
            continue
        # 最多拆分1次,避免替换内容含空格时解析错误
        old_str, new_str = line.split(maxsplit=1)
        replace_map[old_str] = new_str.strip()

# 补充HTML编码“的替换规则
replace_map['“'] = '"'

2. 执行文本替换

如果文本中混杂其他HTML实体编码,可以先做统一转义,再遍历规则完成替换:

import html

# 待处理原始字符串
string = 'Biden Brags About Handing Out “Record” Number of Work Visas to Foreigners'
# 可选:统一转义文本中所有HTML实体编码
string = html.unescape(string)
# 遍历规则逐一替换
for old, new in replace_map.items():
    string = string.replace(old, new)

# 打印输出结果
print(string)

运行后输出结果:

Biden Brags About Handing Out "Record" Number of Work Visas to Foreigners

常见问题说明

  • 替换失效优先检查文件读取编码:未指定encoding='utf-8'时,Windows系统默认用GBK编码读取文件,会导致弯引号读为乱码,无法匹配到待替换内容
  • 如果replace.txt中存储的是"这类HTML实体字面字符串,解析规则时需要调用html.unescape(new_str)将实体转为实际字符后再存入替换映射
  • 不要直接用split()拆分规则行,否则替换目标包含空格时会触发值拆分过多的报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 17:54:30