時間を構成する文字列があり、時間を12時間形式にフォーマットしたかったのです。
私は試した、
pat1 = "(\d+):(\d+)?\s*pm"
pat1 = "(\d+):(\d+)?\s*am"
hooString = "673 HOO: Mon. 7:30 am - 6pm, Tue. 7:30am - 6 pm, Wed. 7:30 am - 6 pm, Thurs. 7:30 am - 6 pm, Fri. 8 am - 5 pm,"
hooString = sub(compile(pat1, IGNORECASE), "\1:\2 AM", hooString)
hooString = sub(compile(pat2, IGNORECASE), "\1:\2 PM", hooString)
print hooString
私は次のように出力を得ました、
673 HOO: Mon. 7:30 AM - 6pm, Tue. 7:30 AM - 6 pm, Wed. 7:30 AM - 6 pm, Thurs. 7:30 AM - 6 pm, Fri. 8 am - 5 pm,
しかし、「午前8時または午前8時」も「午前8時」に置き換える必要があったため、正規表現をわずかに変更しました
pat1 = "(\d+):?(\d+)?\s*am"
pat2 = "(\d+):?(\d+)?\s*pm"
「一致しないグループ」例外がスローされます。2 番目のグループが入力文字列に存在しないためです。
「%H:%M %P」と「%H %p」の両方の条件で例外なく期待される結果を得るにはどうすればよいですか?
また、「午前 8 時」の結果が「午前 8:00」と表示されれば、それが最良の回答になる可能性があります。