Я видел это из учебника, чтобы соответствовать формату времени с помощью регулярных выражений:
t = '19:05:30'
m = re.match(r'^(0[0-9]|1[0-9]|2[0-3]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])$', t)
# limited to 0X or 1X or 2X or x
# limited to 1X, 2X, 3X, 4X, 5X or X
# same as minutes
print(m.groups())
# >>> ('19', '05', '30')
Очевидно, что это сработало, но, похоже, довольно избыточно, могу ли я использовать:
m = re.match(r'^(2[0-3]|[0-1][0-9]|[0-9])\:([0-5][0-9])\:([0-5][0-9])$', t)
print(m.groups())
# >>> ('19', '05', '30')
Я новичок в regex, и я не уверен, смогу ли я написать что-то лучше, чем учебник, но я не могу найти в этом ничего плохого.
Спасибо,