如何在代码中添加'\n'使正则匹配结果逐行输出到文本文档
解决正则匹配结果逐行写入文件的问题
不用着急,这个问题其实挺常见的,核心就是要确保每个匹配结果都带上换行符,或者在写入环节处理好换行逻辑。我分两种最常见的代码场景给你拆解:
场景1:先收集所有匹配结果,再一次性写入文件
如果你是先把所有匹配到的内容存在列表里,再统一写入文件,那直接用换行符把列表元素拼接起来就行:
import re # 示例正则匹配逻辑 pattern = re.compile(r'你的正则表达式') source_text = "你的原始文本内容" match_results = pattern.findall(source_text) # 正确写入文件的方式 with open('output.txt', 'w', encoding='utf-8') as f: # 用\n连接所有结果,自动实现逐行分隔 f.write('\n'.join(match_results))
这样每个匹配结果之间会被换行符隔开,写入文件后自然就是每行一条结果。
场景2:匹配一个就写入一个
如果是边匹配边写入文件,那每次写入时给匹配结果加上\n即可:
import re pattern = re.compile(r'你的正则表达式') source_text = "你的原始文本内容" with open('output.txt', 'w', encoding='utf-8') as f: for match in pattern.finditer(source_text): # 每个结果后追加换行符再写入 f.write(match.group() + '\n')
要是你习惯用print()函数,也可以直接利用它默认加换行的特性:
# 替代上面的写入行 print(match.group(), file=f)
小提醒
- 打开文件时记得指定编码(比如
encoding='utf-8'),避免出现乱码。 - 如果你的匹配结果本身就包含换行符,可以先做一次清理(比如用
strip()去掉首尾空白),再添加自定义换行符。
对照自己的代码看看属于哪种场景,把\n加到对应的位置就能解决堆叠问题啦!
内容的提问来源于stack exchange,提问作者Yepram Yeransian
相关产品推荐
相关产品推荐

