我是一个有用的助手,可以翻译文本。
我得到的输出是:
但我需要将“8am或8 am”也替换为“8 AM”,所以我稍微修改了正则表达式。
它抛出了一个“未匹配的组”异常。因为第二个组在输入字符串中不存在。
我怎样才能在两种条件“%H:%M %P”和“%H %p”下获得我的预期结果而不出现异常呢?
而且,如果我能够将“8 am”的结果获得“8:00 AM”,那将是最好的答案。
我有一个由时间组成的字符串,我想将这些时间格式化为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,
但我需要将“8am或8 am”也替换为“8 AM”,所以我稍微修改了正则表达式。
pat1 = "(\d+):?(\d+)?\s*am"
pat2 = "(\d+):?(\d+)?\s*pm"
它抛出了一个“未匹配的组”异常。因为第二个组在输入字符串中不存在。
我怎样才能在两种条件“%H:%M %P”和“%H %p”下获得我的预期结果而不出现异常呢?
而且,如果我能够将“8 am”的结果获得“8:00 AM”,那将是最好的答案。
re.sub
并带有替换回调函数) - Martin Enderr"(\d+(?:[:]\d+)?)\s*([ap]m)"
并自动将第二个组转换为大写 - Martin Enderr"(\d+(?:[:]\d+)?)\s*([ap][.]?m)
,对吧?你可以在回调函数中完成所有的清理工作。 - Martin Ender