是否有一个JAVA库来剪辑电子邮件中的引用文本?
如果是HTML消息,到目前为止我使用了HTML解析器并从DOM树中删除了块引用,但是我对纯文本格式有了更多的麻烦。
我试过正则表达式:
emailBody = emailBody.replaceAll("\n>[^\n]*?\n", "\n");
但是我远没有掌握它,所以我必须有一个解决方案,因为这是一个有关更多人的问题。 上面的代码替换所有新行(在\ n之后)和以>开头的行,只要有其他内容并以\ n结尾,则不包含任何其他新行。另外我认为应该从消息结束开始替换,依此类推。它比那行代码要复杂一点。
所以欢迎任何帮助!
干杯, 巴拉兹
答案 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", "")
这将匹配以“>”开头的每一行并用空字符串替换它(包括换行符)