正则表达式在java中使用回复邮件删除原始邮件?

时间:2010-05-12 11:21:17

标签: java regex javamail

在我的论坛中,用户可以通过电子邮件回复。我正在处理他们回复的邮件。当他们回复原始邮件时附加。我想只获得回复消息而不是原始消息。

我必须为gmail和amp;编写正则表达式的Hotmail。

为gmail写的正则表达式如下:

\n.*wrote:(?s).*--End of Post--

删除除日期以外的原始邮件。 我也想删除日期。

删除原始邮件之前

 hi 33

 On Tue, May 11, 2010 at 4:18 PM, Mmmmm, Rrrrr
 <Rrrr.Mmmmm@uuuuu.com>wrote:

  The following update has been posted to this discussion:
  ----------------------------------------------------------------------
  test as user 222
  ----------------------------------------------------------------------
  [$MESSAGE_SIGNATURE_HEADER$]



  --End of Post--

当我使用上述正则表达式时,它按以下方式过滤:

 hi 33

 On Tue, May 11, 2010 at 4:18 PM, Mmmmm, Rrrrr

这里我只想要实际消息'hi 33'而不是那个日期。如何使用上面的正则表达式过滤日期?

同样我还需要Hotmail的正则表达式

我感谢任何回复。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

尝试这个(这将匹配应删除的所有内容):

On\s+\w+,\s+\w+\s+\d+,\s+\d+\s+at\s+\d+:\d+\s+\w+,.*?wrote:.*?--End of Post--

或更简单的版本:

On.*?wrote:.*?--End of Post--

答案 1 :(得分:0)

我明白了。 跳过新行我以这种方式修改....

在\ S + \ W +,\ S + \ W + \ S + \ d +,\ S + \ d + \ S +在\ S + \ d +:\ d + \ S + \ W +,\ S + \ W +,\ S + \ W +(S? )。?写道:。 \ n(?s)。* - 发布结束 -