如何查找并替换文件中以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
相关产品推荐
相关产品推荐

