字符串模式匹配python

Bro*_*don 1 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)
Run Code Online (Sandbox Code Playgroud)

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

Tig*_*kT3 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.')
Run Code Online (Sandbox Code Playgroud)

结果:

1900-01-01 11:20:00
1900-01-01 11:40:00
No.
Run Code Online (Sandbox Code Playgroud)