对于我的程序
我有一系列命令行参数,我需要在继续执行其余程序之前检查它们是否有效。
其中一个论点是格式
示例:晚上11:20有效或晚上11:40有效但是11:32无效(这是12Hr数字时钟的表达,最后有AM / PM。
这是我提出的正则表达式
mo = re.search(r'[0-1][0-2]:[0-5][0-9][APap][Mm]', time)
然而,我需要做的是提出一种检查时间变量是否与设定模式匹配的方法
答案 0 :(得分:7)
尝试将其与datetime.datetime.strptime()
匹配,如果失败则处理错误(无论你喜欢什么行为)。
for s in ('11:20pm', '11:40PM', '11:32'):
try:
print(datetime.datetime.strptime(s, '%H:%M%p'))
except ValueError:
print('No.')
结果:
1900-01-01 11:20:00
1900-01-01 11:40:00
No.