проверка формата времени Python - PullRequest
7 голосов
/ 24 августа 2009

На python я хочу проверить, находится ли входная строка в формате «ЧЧ: ММ», например 01:16, 23:16 или 24:00. Давать истину или ложь в результате.

Как мне добиться этого с помощью регулярного выражения?

Ответы [ 4 ]

22 голосов
/ 24 августа 2009

Вы можете достичь этого без регулярных выражений:

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
3 голосов
/ 24 августа 2009

Этот шаблон должен вам помочь:

http://regexlib.com/DisplayPatterns.aspx?cattabindex=4&categoryId=5

3 голосов
/ 24 августа 2009
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.

2 голосов
/ 24 августа 2009

Это даст вам объект регулярного выражения, который проверит его. Однако, в зависимости от того, кого вы спрашиваете, 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])")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...