2016-05-16 4 views
1

私のプログラム文字列パターンマッチPython

残りのプログラムを実行する前に、有効かどうかを確認するために必要な一連のコマンドライン引数があります。

引数の一つは、フォーマット

HHに来る:MM(AM/PM)またはHH:MM(午前/午後)

例:11:20 PMが有効であるか11:40 PMが有効ですしかし、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.