上的電子郵件 回信時通常是郵件客戶端增加了電子郵件的發送日期的原郵件之前 類似如下:發送郵件日期正規表現
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到該日期的子串。
上的電子郵件 回信時通常是郵件客戶端增加了電子郵件的發送日期的原郵件之前 類似如下:發送郵件日期正規表現
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到該日期的子串。
我嘗試以下和它的作品:
On.*?wrote:(\r\n|\r|\n)> Reply ABOVE THIS LINE
一個正則表達式匹配的日期將是(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的末尾添加.*$
,並使用替換函數來替換日期及其後的所有內容,只留下您想要的部分。
我使用[this](http://www.fileformat.info/tool/regex.htm)來測試Java RegEx。 – Dave
我不是正則表達式的嚮導,但你需要類似於:
^(On).{3}, (19|20)\d\d-\d\d-\d\d at \d\d:\d\d -\d\d\d\d,
顯然它不是乾淨的驗證有效的時間和日期,但我假設你的郵件服務器不隨地吐痰outvalids。
你只關心匹配特定的格式,或者你要提取*可能習慣於任何*日期格式? –
我只想匹配在週五,2011-06-17在12:33 -0400,友好的用戶寫道: >回覆此行以上 第二行是恆定的,第一行格式也是恆定的,但當然數據和用戶名之前寫道:總是改變 –