发送邮件日期正则表达式

时间:2011-06-17 17:20:03

标签: java regex javamail

回复电子邮件时 通常,邮件客户端会在原始邮件之前添加电子邮件的发送日期 如下所示:

my reply
On Fri, 2011-06-17 at 12:33 -0400, friendly user wrote:
> Reply ABOVE THIS LINE
and here is the original message.

我希望制作一个正则表达式以匹配第二个&第三行并得到它的开始索引,所以我可以从0到该日期的子串。

3 个答案:

答案 0 :(得分:0)

正则表达式与日期匹配(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{4}-\d{2}-\d{2} at \d{2}:\d{2} (-)?\d{4}(\r\n|\r|\n)> Reply ABOVE THIS LINE。我不知道Java,但我想有一个RegEx匹配函数,如果找到匹配函数,它将返回匹配的字符位置。否则黑客就是在RegEx的末尾添加.*$并使用替换功能将日期及其后的所有内容替换为空,只留下您想要的部分。

答案 1 :(得分:0)

我不是正则表达式向导,但你需要类似的东西:

^(On ).{3}, (19|20)\d\d-\d\d-\d\d at \d\d:\d\d -\d\d\d\d,

显然它在验证有效时间和日期方面并不干净,但我假设您的电子邮件服务器没有吐出残留物。

答案 2 :(得分:-1)

我尝试了以下内容并且有效:

On.*?wrote:(\r\n|\r|\n)> Reply ABOVE THIS LINE