我想把回复和转发从邮件中分离出来。在
例如:
2013年7月31日下午5:15,John Doe写道:
> example email text
>
>
> *From:* Me [mailto:me@gmail.com]
> *Sent:* Thursday, May 31, 2012 3:54 PM
> *To:* John Doe
> *Subject:* RE: subject
>
> example email text
>
>> Dear David,
>>
>> Greetings from Doha!
>> Kindly enlighten me. I am confused.
>>
>> With regards,
>> Smith
>>
>>> Dear Smith,
>>>
>>> Happy New year!
>>> Love
>>>
>>>> Dear Mr Wong,
>>>> Greetings!
>>>> Yours,
>>>> O
上面的例子纯粹是虚构的,但格式是真实的。有些电子邮件包含多个对话。在
我已经尝试过https://github.com/zapier/email-reply-parser和其他包,但不幸的是,它们不能投入生产,因为性能不稳定。在
模式很清楚,可以通过计算“>;”的数量来分隔对话。我最初的想法是浏览整个文档,找出有多少个“>;”,然后将每个“>;”“>;”“>;”和“>;”作为每个对话提取出来。在
我想知道有没有更好的办法?在
非常感谢!在
这里有一个非常简单的解决方案,
itertools.groupby
假设电子邮件正文不包含'>'
:groupby
为您计算。你需要一些关于key=lambda x: len(re.match(r'\>+', x).group(0))
的东西来获得更彻底的解决方案。在输出:
^{pr2}$相关问题 更多 >
编程相关推荐