我有兩種不同類型的日期/時間戳的文件。首先,我已經格式化,像這樣的日期/時間戳記:使用正則表達式匹配多種日期/時間戳
DATE : Fri, 20 Apr 2012 09:15:17 -0700 (PDT)
其次,我已經時間戳格式,像這樣:
12:24 PM
我寫了兩個正則表達式模式來處理這個:
full_pattern = re.compile('\w{3,4}\W\s\w{3}\s\d{4}\s\d\d:\d\d:\d\d')
time_pattern = re.compile(' \d:\d\d\s[\w]{2}')
這些是會話,所以我正在查找包含會話開始日期和時間的輸出,然後查找對話中每個項目的時間戳。最終的應用是每次日期和時間匹配時使用Arduino微控制器驅動某些東西(例如:是4月30日和下午1:01?是否有消息?是?好的,啓動)。
我有兩個問題:
的第一圖案(「full_pattern」)不返回任何東西,而且我想不通爲什麼。我需要解決全部問題嗎? (包括「日期」位)?
如何將這些一起使用?所以正則表達式找到第一個日期/時間戳,然後打印出時間戳,找到下一個日期/時間戳,然後打印出時間戳。像這樣:
週五,2012年4月20日11點01分17秒 上午11時01 上午11:03
週五,2012年4月20日9時15分17秒 晚上9:15 9:17 PM
請注意:日期/時間戳在軍事的時間,其餘的是AM/PM
我已經試過管道像這樣:
re.findall(pattern1 | pattern2, string)
但它不喜歡那樣。我也試過在同時運行它們的循環,就像這樣:
for line in string:
pattern1 = re.compile('\w{3,4}\W\s\w{3}\s\d{4}\s\d\d:\d\d:\d\d')
pattern2 = re.compile(' \d:\d\d\s[\w]{2}')
re.findall(pattern1, string)
re.findall(pattern2, string)
但是,這導致所有模式2的無限循環(可能不是無限的,絕對的方式比我更需要)。
任何幫助將不勝感激,謝謝!
剛剛測試過並取得了不錯的成績。謝謝! – spikem 2012-04-26 22:51:56