На python я хочу проверить, находится ли входная строка в «HH: MM», например 01:16 или 23:16 или 24:00. Давать истину или ложь по результату.проверка формата времени python
Как добиться этого, используя регулярное выражение?
На python я хочу проверить, находится ли входная строка в «HH: MM», например 01:16 или 23:16 или 24:00. Давать истину или ложь по результату.проверка формата времени python
Как добиться этого, используя регулярное выражение?
Вы можете достичь этого без регулярных выражений:
import time
def isTimeFormat(input):
try:
time.strptime(input, '%H:%M')
return True
except ValueError:
return False
>>>isTimeFormat('12:12')
True
>>>isTimeFormat('012:12')
False
Вау, который был действительно очень полезным; благодаря! – jambox
Это даст вам объект регулярного выражения, который будет проверять его. Однако, в зависимости от того, кто вы просите 24:00, может не быть действительного времени (это 00:00). Но я думаю, это легко изменить в соответствии с вашими потребностями.
import re
regexp = re.compile("(24:00|2[0-3]:[0-5][0-9]|[0-1][0-9]:[0-5][0-9])")
import re
time_re = re.compile(r'^(([01]\d|2[0-3]):([0-5]\d)|24:00)$')
def is_time_format(s):
return bool(time_re.match(s))
Матчи все с 00:00 до 24:00.
Эта модель должна помочь вам:
http://regexlib.com/DisplayPatterns.aspx?cattabindex=4&categoryId=5
Вы хотите «две цифры, двоеточие, две цифры» или вы хотите, чтобы проверить, если это на самом деле юридическое значение времени? – balpha
Строго говоря, '24: 00 'не является допустимой строкой «HH: MM». '00: 00 '- '23: 59'. –
Midnight - специальный случай и может называться как «00:00», так и «24:00». Обозначение «00:00» используется в начале календарного дня и чаще используется. [ISO 8601] (http://en.wikipedia.org/wiki/ISO_8601) –