字符串模式匹配python

时间:2016-05-16 23:12:57

标签: python regex

对于我的程序

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

其中一个论点是格式

HH:MM(上午/下午)或HH:MM(上午/下午)

示例:晚上11:20有效或晚上11:40有效但是11:32无效(这是12Hr数字时钟的表达,最后有AM / PM。

这是我提出的正则表达式

mo = re.search(r'[0-1][0-2]:[0-5][0-9][APap][Mm]', time)

然而,我需要做的是提出一种检查时间变量是否与设定模式匹配的方法

1 个答案:

答案 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.