2016-05-16 98 views
1

对于我的程序字符串模式匹配python

我有一系列的命令行参数,我需要检查它们是否有效,然后继续执行其余的程序。

其中一个说法来自格式

HH:MM(AM/PM)或HH:MM(AM/PM)

例子:下午11:20是有效的还是晚上11:40是有效的但11:32是无效的(它与在最后一个AM/PM 12小时一个数字时钟的表达。

这是正则表达式我已经想出

mo = re.search(r'[0-1][0-2]:[0-5][0-9][APap][Mm]', time) 
但是我需要什么

要做的就是机智h检查时间变量是否与设定模式匹配的方法

+0

还有什么0和1之间? –

回答

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.