0

によって生成されたログを解析しようとしています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())

動作しますが、最初のコミットと 2 番目のコミットの最初の 2 行もすべてまとめて取得しました (commit aaaaa...およびAuthor: ...)。行の後に 2 つの連続する改行がないため、これは特に混乱を招きAuthor:ます。これを分割できる正規表現は何ですか?

編集:明らかに.、デフォルトでは改行文字と一致しません。re は flag でコンパイルする必要がありますre.DOTALL

4

3 に答える 3

4

一貫性のある最初の行だけを一致させるのはどうですか?

'commit [0-9a-f]{40}'
于 2013-04-21T08:30:38.117 に答える