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

如何查找并替换文件中以TEST开头的动态字符串?

解决动态TEST开头字符串的替换问题

你写的代码问题出在正则表达式写错了:

  • ^[TEST]的意思是匹配行首的单个T/E/S/T字符,完全没命中你要找的TESTxxx格式的字符串。

要匹配所有以TEST开头、后面跟三位数字的完整单词,用这个正则:\bTEST\d{3}\b

  • \b:单词边界,确保匹配的是独立的单词(不会误匹配比如TESTabc这类字符串)
  • TEST:固定匹配开头的大写TEST
  • \d{3}:匹配连续三位数字(如果数字位数不固定,换成\d+即可)

修正后的字符串替换代码

import re

target_str = "This is a Test file TEST001 learning TEST123"
# 替换所有符合TEST+三位数字格式的字符串为TEST002
res_str = re.sub(r'\bTEST\d{3}\b', 'TEST002', target_str)
print(res_str)

运行后输出:This is a Test file TEST002 learning TEST002

针对文件的替换代码

如果要处理文本文件,直接读取文件内容做替换后再写回:

import re

# 读取文件内容
with open('test.txt', 'r', encoding='utf-8') as f:
    content = f.read()

# 执行替换
new_content = re.sub(r'\bTEST\d{3}\b', 'TEST002', content)

# 写回文件
with open('test.txt', 'w', encoding='utf-8') as f:
    f.write(new_content)

如果需要忽略大小写(比如匹配Test001),可以给re.sub加flags=re.IGNORECASE参数:

new_content = re.sub(r'\bTEST\d{3}\b', 'TEST002', content, flags=re.IGNORECASE)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:15:14