我正在尝试解析由git log --numstat
. 它的格式是
commit 1234567890123456789012345678901234567890
Author: Joseph Shabadoo
Date: Sun Apr 21 14:34:36 2013 +0300
fix the thing that was broken
4 0 foo.py
13 7 bar.py
commit aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd
Author: Donald Dont
Date: Fri Apr 19 21:15:00 2012 +0300
do some stuff
15 6 foo.py
... etc
我将它存储在一个文件中,我想将其拆分为提交以便于解析。我正在使用re.split()
,但似乎找不到适合该工作的正则表达式。我会认为使用
re.split('.*?\n\n.*?\n\n.*?\n\n', myfile.read())
会工作,但我把所有的第一次提交和第二次提交的前两行都放在一起(commit aaaaa...
和Author: ...
)。这尤其令人困惑,因为在该行之后没有两个连续的换行符Author:
。什么正则表达式可以将其拆分?
编辑:.
默认情况下显然不匹配换行符。re 需要用 flag 编译re.DOTALL
。