匹配RFC 2822日期的最佳正則表達式是什麼?RFC 2822日期正則表達式
基本上我想匹配Date: Sun, 19 Feb 2012 16:25:02 +0000
出現在我收到的一些電子郵件中,但理想情況是獨立於語言。
我沒有在網上找到下面的正則表達式,但不知道如何做一個月語言無關(但仍符合其他) - 我相信,一個月應該在規範3個字符,但不能完全確定...
/^(?:(Sun|Mon|Tue|Wed|Thu|Fri|Sat),\s+)?(0[1-9]|[1-2]?[0-9]|3[01])\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(19[0-9]{2}|[2-9][0-9]{3})\s+(2[0-3]|[0-1][0-9]):([0-5][0-9])(?::(60|[0-5][0-9]))?\s+([-\+][0-9]{2}[0-5][0-9]|(?:UT|GMT|(?:E|C|M|P)(?:ST|DT)|[A-IK-Z]))(\s+|\(([^\(\)]+|\\\(|\\\))*\))*$/
您的時區規範不完整。例如,我的時區是EET,這不包括在內。我會出去接受任何三個或四個字母,而不是試圖構建一個完整的列表。 – tripleee 2012-02-19 21:07:12
@tripleee所以爲此,我需要將'(?:ST | DT)'更改爲'(?:ST | ET | DT)' – MrJ 2012-02-20 08:32:48
就像我寫的那樣,這很可能還不完全。我的回憶是,即使最後一封信是T,也不能依賴,但是我調查了這封信很長一段時間。由ITYM'[DES] T',但我會重複,我不認爲這就足夠了。另請參閱http://en.wikipedia.org/wiki/Lists_of_time_zones – tripleee 2012-02-20 13:40:20