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

如何在Python中对TXT文件多行执行多正则表达式替换?

解决同一行处理多模式替换的问题

嘿,这个问题其实超容易解决的!你只需要把两次re.sub操作链式调用,或者用批量处理的方式,就能在同一行上完成多种模式的替换啦。下面给你两种实用的方案:

方案1:链式调用re.sub(适合少量模式)

直接在第一次替换的结果上执行第二次替换,代码逻辑简单直观:

import re

path = "your_target_file.txt"
temporary_path = "temp_modified_file.txt"

# 用with语句自动管理文件,避免忘记关闭
with open(path, 'r') as file, open(temporary_path, 'w') as output:
    for line in file:
        # 先处理第一个模式替换
        modified_line = re.sub("patternToChange", "patternToWrite", line)
        # 再用处理后的结果做第二个模式替换
        modified_line = re.sub("patternToChange2", "patternToWrite2", modified_line)
        # 写入临时文件
        output.write(modified_line)

这种方式的好处是代码清晰,适合只有2-3个替换规则的场景。

方案2:用字典批量处理(适合多模式扩展)

如果以后需要添加更多替换规则,用字典来存储模式和对应替换值会更灵活,不用重复写re.sub:

import re

path = "your_target_file.txt"
temporary_path = "temp_modified_file.txt"

# 把所有替换规则存在字典里,键是匹配模式,值是替换内容
replace_rules = {
    "patternToChange": "patternToWrite",
    "patternToChange2": "patternToWrite2"
    # 后续要加新规则,直接在这里加键值对就行
}

with open(path, 'r') as file, open(temporary_path, 'w') as output:
    for line in file:
        modified_line = line
        # 循环处理每个替换规则
        for pattern, replacement in replace_rules.items():
            modified_line = re.sub(pattern, replacement, modified_line)
        output.write(modified_line)

额外小提示:修改原文件

如果你想直接覆盖原文件,处理完临时文件后可以用os.replace来替换原文件(注意先备份原文件,避免意外):

import os
# 替换原文件(Python 3.3+支持)
os.replace(temporary_path, path)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:05:04