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

Python中如何实现文件内多正则表达式批量替换?

处理多个正则替换模式的解决方案

这问题很常见,你只需要把所有替换规则统一整理成一个列表,然后对每一行依次应用每个替换操作就可以了。这样不仅代码更清晰,也方便你添加/修改10-20个替换模式。

改进后的代码示例

import re

# 把所有替换规则整理成列表,每个元素是(搜索正则, 替换内容)的元组
replace_patterns = [
    (r'^this', 'these'),          # 匹配行首的"this",替换为"these"
    (r'tests$', '\ttests'),       # 匹配行尾的"tests",替换为制表符+"tests"
    (r'test\.', 'tests')          # 匹配"test.",替换为"tests"
    # 在这里继续添加你的其他替换模式,比如:
    # (r'old_pattern', 'new_content'),
    # ...
]

# 使用with语句自动管理文件,避免手动关闭的麻烦
with open("data.txt", "r") as fin, open("data2.txt", "w") as fout:
    for line in fin:
        modified_line = line  # 先把原始行赋值给变量
        # 依次应用每个替换模式
        for pattern, replacement in replace_patterns:
            modified_line = re.sub(pattern, replacement, modified_line)
        fout.write(modified_line)

关键说明

  • 规则管理:所有替换规则都放在replace_patterns列表里,新增规则只需要添加新的元组,非常直观易维护。
  • 链式替换:对每一行先从原始内容开始,依次应用每个正则替换,确保所有规则都能生效。
  • 文件安全:使用with语句打开文件,Python会在代码块结束后自动关闭文件,避免资源泄漏。
  • 正则注意事项:推荐用原始字符串(r'')写正则表达式,避免转义字符的冲突(比如^、$这些特殊符号不需要额外转义)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 14:42:36