Python 将源文件格式化为目标文件格式的正则表达式

Python regular expression to format source file to destination file format

我有以下源格式的文本文件。我想将它转换为具有目标格式的文本文件。我只能打印出第一个图案。有人可以帮助如何遍历源文件以到达第 n 个模式并以目标格式打印结果吗?

源文件

pattern_1_begin
<2 lines of text>
pattern_1_end
....
pattern_n_begin
<3 lines of text>
pattern_n_end

目标格式

1 <1st line of pattern 1>
1 <2nd line of pattern 1>
...
n <1st line of pattern n>
n <2nd line of pattern n>
n <3rd line of pattern n>

代码:

pattern_content=[]
flag=False
with open(<filename>) as sourcefile:
    for pattern in sourcefile:
        if pattern.startswith('begin'):
            flag=True
        elif pattern.strip().endswith('end'):
            flag=False
        elif flag:
            pattern_content.append(pattern)
print '\n'.join(pattern_content)

re 的一种方法,可能对您有所帮助

import re
patterns = re.findall(r'(?s)pattern_(\d)_begin\n(.*)\npattern__end',yourstring)
for p in patterns:
    for line in p[1].split('\n'):
        print(p[0]+' : '+ line)