我需要從兩個日期中提取日期信息:正則表達式來提取日期,月份和年份seeparately從DD/MM/YY和月DD,YYYY
Monday, Sep 1, 2014 10:00 AM
和
01/09/14
這樣我有一天(01),月(09)和今年(2014)
我能與此正則表達式來提取一天(01):
\s+.*?(\d+)\/*,*
我已經沒有運氣與提取年,我完全無法提取月份。 請幫忙。從第一日的 (.+),\s(\.+)\s(\d+),.*
和:
我需要從兩個日期中提取日期信息:正則表達式來提取日期,月份和年份seeparately從DD/MM/YY和月DD,YYYY
Monday, Sep 1, 2014 10:00 AM
和
01/09/14
這樣我有一天(01),月(09)和今年(2014)
我能與此正則表達式來提取一天(01):
\s+.*?(\d+)\/*,*
我已經沒有運氣與提取年,我完全無法提取月份。 請幫忙。從第一日的 (.+),\s(\.+)\s(\d+),.*
和:
這是一個組合的正則表達式。你可以從它得到兩個表單。
如果它的 「週一,2014年9月1日」 格式化捕捉組將是:
1: Sep
3: 1
4: 2014
和 「14年1月1日」,他們將是:
2: 01
3: 01
4: 14
只是檢查如果存在第二組用於檢查是否該值是第二格式:
^\w*(?:, (\w{3})|(\d{2}))[\/ ]\s*(\d{1,2})(?:/|,)(\d{2,4})
說明:
你可以建議如何使用SimpleDateFormat解析使用這個正則表達式的日期嗎? – user2281204 2014-11-18 06:09:37
可以使用提取的第一次約會的數據 (\d+)\/(\d+)\/(\d+)
只是,如果你確定你日期輸出的格式。
第一日期可以與提取的以下內容:
\w+,\s\w+\s\d{1,2},\s\d{4}\s\d{2}:\d{2}\s(?:AM|PM)
這裏的主要部分是數字限於各自的數字。即。一年只能是4位數,月/日只能是2位數。如果需要,您可以更進一步,但這通常足以防止您解析的數據中出現任何誤報。
第二日期可以提取如下所示:
\d{2}/\d{2}/\d{2}
同樣,日期的單獨的片被限制爲兩個數字,試圖減少假陽性的數量。如果數據中有其他日期格式,這將會產生誤報。在這種情況下,它需要更多的限制。還有幾件事可以做,但這取決於你的數據。
然後,如果你想兩個正則表達式相結合,一個方法是做到以下幾點:
(?:\w+,\s\w+\s\d{1,2},\s\d{4}\s\d{2}:\d{2}\s(?:AM|PM)|\d{2}\/\d{2}\/\d{2})
哪種編程語言是您使用? – 2014-11-14 13:54:39
正則表達式會知道'Sep'是一個月嗎? – 2014-11-14 14:02:14