0
我目前正在嘗試解析郵件txt存檔文件。這些文件具有通過列表連接在一個文件中的所有電子郵件。該結構是這樣的:解析郵件存檔
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
不包含郵件正文中,但只有一個換行符。我如何讓最後一個匹配組匹配一切,但只要上面的部分匹配,身體匹配組不應該匹配?
消息之間是否有明確的分隔符?例如'\ n \ n'或類似的? –
我對此不確定。我認爲'\ n \ n'總是在消息之間,但問題在於它也可能在消息體內。 –
所以理論上你可以有一個電子郵件包含6個標題行_in content_權利?我不知道是否有任何強大的方法來解析這個... – Shep