Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 已发送邮件日期正则表达式_Java_Regex_Jakarta Mail - Fatal编程技术网

Java 已发送邮件日期正则表达式

Java 已发送邮件日期正则表达式,java,regex,jakarta-mail,Java,Regex,Jakarta Mail,回复电子邮件时 通常,邮件客户端会在原始邮件之前添加电子邮件的发送日期 如下所示: my reply On Fri, 2011-06-17 at 12:33 -0400, friendly user wrote: > Reply ABOVE THIS LINE and here is the original message. ^(On ).{3}, (19|20)\d\d-\d\d-\d\d at \d\d:\d\d -\d\d\d\d, 我想做一个正则表达式来匹配第二行和第三行,并

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

my reply
On Fri, 2011-06-17 at 12:33 -0400, friendly user wrote:
> Reply ABOVE THIS LINE
and here is the original message.
^(On ).{3}, (19|20)\d\d-\d\d-\d\d at \d\d:\d\d -\d\d\d\d,

我想做一个正则表达式来匹配第二行和第三行,并得到它的开始索引,这样我就可以从0到那个日期进行子串。

一个正则表达式匹配的日期应该是
(Mon | Tue | Wed | Thu | Fri | Sat | Sun),\d{4}-\d{2}-\d{2}at\d{2}-\d{2}-\d{4}(\r\n}回复这一行上面的代码。我不懂Java,但我想有一个正则表达式匹配函数,如果找到匹配,它将返回匹配的字符位置。否则,黑客会在正则表达式的末尾添加一个
*$
,并使用replace函数将日期及其后的所有内容替换为零,只留下您想要的部分。

我不是正则表达式向导,但您需要类似于:

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

很明显,在验证有效时间和日期时,它没有那么干净,但我假设您的电子邮件服务器没有吐出无效的邮件。

我尝试了以下方法,它可以工作:

^(On ).{3}, (19|20)\d\d-\d\d-\d\d at \d\d:\d\d -\d\d\d\d,
On.*?wrote:(\r\n|\r|\n)> Reply ABOVE THIS LINE

你只关心匹配那个特定的格式,还是想提取任何可能被使用的日期格式?我只想匹配2011年6月17日星期五12:33-0400,友好的用户写道:>回复这一行上面的第二行是常量,第一行格式也是常量,但当然,数据和用户名之前写的:总是改变