JAVA电子邮件 - 剪辑引用行

时间:2010-11-16 10:01:00

标签: java regex email

是否有一个JAVA库来剪辑电子邮件中的引用文本?

如果是HTML消息,到目前为止我使用了HTML解析器并从DOM树中删除了块引用,但是我对纯文本格式有了更多的麻烦。

我试过正则表达式:

    emailBody = emailBody.replaceAll("\n>[^\n]*?\n", "\n");

但是我远没有掌握它,所以我必须有一个解决方案,因为这是一个有关更多人的问题。 上面的代码替换所有新行(在\ n之后)和以>开头的行,只要有其他内容并以\ n结尾,则不包含任何其他新行。另外我认为应该从消息结束开始替换,依此类推。它比那行代码要复杂一点。

所以欢迎任何帮助!

干杯, 巴拉兹

2 个答案:

答案 0 :(得分:1)

我认为您认为每一行以>字符 引用行开头是否正确?

这是一个快速解决方案:

String[] lines = emailBody.split("\n");
StringBuilder clippedEmailBuilder = new StringBuilder();
for (String line:lines)
  if (!line.startsWith(">"))
     clippedEmailBuilder.append(line);
emailBody = clippedEmailBuilder.toString();

答案 1 :(得分:0)

我不确定你要对你的RE做什么,但考虑每一行都以'>'开头要引用邮件文本,您可以使用以下内容过滤它们:

emailBody.replaceAll(">.*\n", "")

这将匹配以“>”开头的每一行并用空字符串替换它(包括换行符)