首页 > 解决方案 > 在python中使用正则表达式在5位数字前插入换行符

问题描述

我有以下问题:我有一个 .txt 文件,其中包含以下方案中的信息:

ddddd name country time dddd name country time

ddddd 代表 5 位数字,代表参与者的 ID 号。到目前为止,我已经有了可用的信息:

filename = 'raw_race.txt'
new_filename = 'data_race.txt'

pattern = re.compile(r'\D(\d{5})\D')

with open(filename, 'r') as readfile, open(new_filename, 'w+') as writefile:
    for line in readfile:
        writefile.write(line)
        if pattern.search(line):
            writefile.write('\n')

这不起作用(输出文件与输入相同)而且,这会在模式之后添加段落,而不是之前。

有人看到我能做什么吗?干杯!

标签: pythonregex

解决方案


for line in readfile:
    writefile.write(re.sub(r'\b(\d{5})\b', '\n\\1', line))

成功了,谢谢!


推荐阅读