私は非常に単純かもしれない何かに行き詰まっていますが、解決策が見つかりません。私は数日前から Python を使用しており、正規表現を使用してファイルの一部を取得する必要があります。
a の結果をgit log -p
ファイルに入れましたが、いくつかの情報を抽出したいと思います。抽出できないのはコメントブロックだけです。
このブロックは、日付行 AND (差分行 OR リストの末尾) の間にあります。
...
Date: Wed Jul 3 22:32:36 2013 +0200
Here is the comment
of a commit
and I have to
extract it
diff --git a/dir.c b/dir.c
...
...
Date: Wed Jul 3 22:32:36 2013 +0200
Here is the comment
of a commit
and I have to
extract it
だから私はこれをやろうとしました:
commentBlock = re.compile("(?<=Date:.{32}\n\n).+(?=|\n\ndiff)", re.M|re.DOTALL)
findCommentBlock = re.findall(commentBlock,commitBlock[i]) # I've splited my git log everytime I find a "commit" line.
問題は次のとおりです。
- 日付変更線の長さは変更できます。
Date:.{32}
日付が 1 日から 9 日までのDate:.{33}
場合、または日付が 2 桁の場合に発生する可能性があります。 - 言い方がわかりません:「コメントブロックは、行が
diff
ORで始まると、リスト(またはファイル)の終わりになると停止します」。
GitPython
PS私はPython 3.xに取り組んでおり、スクリプトをほぼ完成させたので、 (2.xでのみ機能する)特定のツールを使用したくありません