2013-06-28 44 views
1

在Python中匹配HH:MM時間格式的正則表達式是什麼? 我用如何檢查python字符串以查看它是否爲HH:MM時間格式?

def is_time(self, str): 
    reg = re.compile(r'[1-9]|1[0-2]:[0-9]{2}') 

    if re.match(reg, str): 
     return True 
    else: 
     return False 

我也試過:

reg = re.compile(r'^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$') 

,但我不斷收到

TypeError: %d format: a number is required, not str

它叫我收到錯誤,因爲我正在檢查的意義數字字符串,但我不知道如何解決它。任何幫助將不勝感激。

+0

FYI的'\ D'等同於'[0-9]'。 –

回答

3

你應該只使用:

if reg.search(strs) 

或者乾脆:

return reg.search(strs)

+0

或'return reg.search(str)' –

+0

當我嘗試時,它仍然給我那個錯誤。 –

+0

@ AlexW.H.B。不要使用'str'作爲變量名稱。 –

7

你應該使用datetime.strptime

>>> import datetime 

>>> datetime.datetime.strptime('12:34', '%H:%M') 
datetime.datetime(1900, 1, 1, 12, 34) 

>>> datetime.datetime.strptime('99:99', '%H:%M') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib64/python2.7/_strptime.py", line 325, in _strptime 
    (data_string, format)) 
ValueError: time data '99:99' does not match format '%H:%M' 
相關問題