Сообщение электронной почты JAVA - обрезать цитируемые строки - PullRequest
1 голос
/ 16 ноября 2010

существует ли библиотека JAVA для вырезания цитируемого текста из сообщения электронной почты?

Если это сообщение HTML, я использовал анализатор HTML и удалил цитаты из дерева DOM, но у меня больше проблем с форматом простого текста.

Я попробовал регулярное выражение:

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

но я далеко не справляюсь с этим, поэтому я думаю, что должно быть решение, так как это проблема, касающаяся большего количества людей, я думаю. Приведенный выше код заменяет все строки, которые являются новыми строками (после \ n) и начинаются с>, не содержат никаких новых строк, если есть другое содержимое и заканчиваются \ n. Также я думаю, что замена должна быть сделана, начиная с конца сообщения, и так далее. Это немного сложнее, чем просто строка кода.

Так что любая помощь приветствуется!

Cheers, Балаж

Ответы [ 2 ]

1 голос
/ 16 ноября 2010

Правильно ли я понимаю, что вы рассматриваете каждую строку, начинающуюся с > char или цитируемой строки ?

Вот быстрое решение:

String[] lines = emailBody.split("\n");
StringBuilder clippedEmailBuilder = new StringBuilder();
for (String line:lines)
  if (!line.startsWith(">"))
     clippedEmailBuilder.append(line);
emailBody = clippedEmailBuilder.toString();
0 голосов
/ 16 ноября 2010

Я не уверен, что вы пытаетесь сделать со своим RE, но рассматривая каждую строку, начинающуюся с '>', как текст сообщения в кавычках, вы можете отфильтровать их следующим образом:

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

Это будет соответствовать каждой строке, начинающейся с '>', и заменять ее (включая символ новой строки) пустой строкой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...