W python, chcę sprawdzić, czy ciąg wejściowy jest w "HH: MM", takich jak 01:16 lub 23:16 lub 24:00. Nadanie wyniku prawdziwego lub fałszywego.Sprawdzanie formatu czasu Pythona
Jak mogę to osiągnąć, używając wyrażenia regularnego?
W python, chcę sprawdzić, czy ciąg wejściowy jest w "HH: MM", takich jak 01:16 lub 23:16 lub 24:00. Nadanie wyniku prawdziwego lub fałszywego.Sprawdzanie formatu czasu Pythona
Jak mogę to osiągnąć, używając wyrażenia regularnego?
Można to osiągnąć bez wyrażeń regularnych:
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
wow, który był naprawdę bardzo pomocny; dzięki! – jambox
To daje obiektu RegExp, która będzie sprawdzać. Jednak w zależności od tego, o kogo pytasz 24:00, może nie być prawidłowego czasu (jest 00:00). Ale myślę, że to jest łatwe do modyfikacji, aby pasowało do twoich potrzeb.
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))
zestawienia wszystko, od 00:00 do 24:00.
Ten wzór powinien pomóc:
http://regexlib.com/DisplayPatterns.aspx?cattabindex=4&categoryId=5
Chcesz „dwie cyfry, okrężnicy, dwie cyfry” czy chcesz, aby sprawdzić, czy to faktycznie prawny wartość czasu? – balpha
Ściśle mówiąc "24: 00" nie jest prawidłowym ciągiem "HH: MM". Od "00: 00" do "23: 59". –
Północ to specjalny przypadek, który można określić jako "00:00" i "24:00". Notacja "00:00" jest używana na początku dnia kalendarzowego i jest częściej używana. [ISO 8601] (http://en.wikipedia.org/wiki/ISO_8601) –