我从教科书中看到了这个,以匹配正则表达式的时间格式:
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的新手,我不确定我是否能轻松编写出比教科书更好的东西,但是我找不到任何错。
谢谢