Регулярное выражение даты отправленной почты - PullRequest
0 голосов
/ 17 июня 2011

при ответе на электронное письмо, как правило, почтовый клиент добавляет дату отправки электронного письма перед исходным письмом примерно так:

my reply
On Fri, 2011-06-17 at 12:33 -0400, friendly user wrote:
> Reply ABOVE THIS LINE
and here is the original message.

, и я хочу сделать регулярное выражение, соответствующее второму &третьи строки и получить его начальный индекс, так что я могу подстроку от 0 до этой даты.

Ответы [ 3 ]

0 голосов
/ 17 июня 2011

Я не волшебник регулярных выражений, но вам нужно что-то похожее на:

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

Очевидно, что проверять правильное время и дату не так просто, но я предполагаю, что ваш почтовый сервер не выплевывает инвалидов.

0 голосов
/ 18 июня 2011

я попробовал следующее, и это работает:

On.*?wrote:(\r\n|\r|\n)> Reply ABOVE THIS LINE
0 голосов
/ 17 июня 2011

Регулярное выражение, совпадающее с датой, будет (Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{4}-\d{2}-\d{2} at \d{2}:\d{2} (-)?\d{4}(\r\n|\r|\n)> Reply ABOVE THIS LINE.Я не знаю Java, но я предполагаю, что есть функция соответствия RegEx, которая будет возвращать символьную позицию соответствия, если найдет ее.В противном случае взломать это добавить .*$ в конец RegEx и использовать функцию замены, чтобы заменить дату и все после нее ничем, оставив вам только ту часть, которую вы хотите.

...