0

現在、Mailman txt アーカイブ ファイルを解析しようとしています。これらのファイルには、リストを介して送信されたすべての電子メールが 1 つのファイルに連結されています。構造は次のようになります。

From SOMETHING
From: SOMETHING
Date: SOMETHING
Subject: SOMETHING
In-Reply-To: SOMETHING
Message-ID: <SOMETHING>

CONTENT



From SOMETHING
From: SOMETHING
Date: SOMETHING
Subject: SOMETHING
In-Reply-To: SOMETHING
Message-ID: SOMETHING

CONTENT


[...]

問題は、CONTENT改行が含まれる可能性があることです。そのため、単純にアーカイブをメッセージに分割してから、各メッセージを解析することはできません。

これを解析しようとしたのは次のとおりです。

def parseContent(content):
    import re
    pattern = r"From (.*)\n"+\
               "From: (.*)\n"+\
               "Date: (.*)\n"+\
               "Subject: (.*)\n"+\
               "In-Reply-To: (.*)\n"+\
               "Message-ID: (.*)\n"+\
               "(.*)"
    matches = re.findall(pattern, content)

    for from1, from2, date, subject, inreply, messageid, body in matches:
        print from1
        print body
        print "#"*20
    return matches

ただしbody、メッセージの本文は含まれませんが、改行は 1 つだけです。最後の一致グループをすべて一致させるにはどうすればよいのですが、上記の部分が一致するとすぐに、body 一致グループは一致しないはずです。

4

1 に答える 1