2011-06-17 38 views
-1

上的電子郵件 回信時通常是郵件客戶端增加了電子郵件的發送日期的原郵件之前 類似如下:發送郵件日期正規表現

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到該日期的子串。

+0

你只關心匹配特定的格式,或者你要提取*可能習慣於任何*日期格式? –

+0

我只想匹配在週五,2011-06-17在12:33 -0400,友好的用戶寫道: >回覆此行以上 第二行是恆定的,第一行格式也是恆定的,但當然數據和用戶名之前寫道:總是改變 –

回答

-1

我嘗試以下和它的作品:

On.*?wrote:(\r\n|\r|\n)> Reply ABOVE THIS LINE 
0

一個正則表達式匹配的日期將是(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的末尾添加.*$,並使用替換函數來替換日期及其後的所有內容,只留下您想要的部分。

+1

我使用[this](http://www.fileformat.info/tool/regex.htm)來測試Java RegEx。 – Dave

0

我不是正則表達式的嚮導,但你需要類似於:

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

顯然它不是乾淨的驗證有效的時間和日期,但我假設你的郵件服務器不隨地吐痰outvalids。