2016-05-16 128 views
1

對於我的程序字符串模式匹配python

我有一系列的命令行參數,我需要檢查它們是否有效,然後繼續執行其餘的程序。

其中一個說法來自格式

HH:MM(AM/PM)或HH:MM(AM/PM)

例子:下午11:20是有效的還是晚上11:40是有效的但11:32是無效的(它與在最後一個AM/PM 12小時一個數字時鐘的表達。

這是正則表達式我已經想出

mo = re.search(r'[0-1][0-2]:[0-5][0-9][APap][Mm]', time) 
但是我需要什麼

要做的就是機智h檢查時間變量是否與設定模式匹配的方法

+0

還有什麼0和1之間? –

回答

7

嘗試將其與datetime.datetime.strptime()匹配,並在出錯時處理錯誤(無論您想要什麼行爲)。

for s in ('11:20pm', '11:40PM', '11:32'): 
    try: 
     print(datetime.datetime.strptime(s, '%H:%M%p')) 
    except ValueError: 
     print('No.') 

結果:

1900-01-01 11:20:00 
1900-01-01 11:40:00 
No.