Python 用于每日时间(带区域)或时间间隔的正则表达式
总之,表单验证函数需要一个正则表达式来确定用户输入的每日时间(24小时格式,始终带有时区)或间隔是否正常。有5个可能的时区(4个美国大陆+UTC作为后缀)和2种间隔类型(可以是浮动、h或m后缀)。下面是一些有效输入的示例Python 用于每日时间(带区域)或时间间隔的正则表达式,python,regex,Python,Regex,总之,表单验证函数需要一个正则表达式来确定用户输入的每日时间(24小时格式,始终带有时区)或间隔是否正常。有5个可能的时区(4个美国大陆+UTC作为后缀)和2种间隔类型(可以是浮动、h或m后缀)。下面是一些有效输入的示例 美国东部时间0:30(东部时间午夜半) 22:15(22:15,山地时间) 12.5米(间隔12.5分钟) 这是一个很好的开始,但我无法让时区后缀regex正常工作,也无法为interval案例添加替代项 作为参考,所需时区为EST、CST、MST、PST和UTC。当然,只
- 美国东部时间0:30(东部时间午夜半)
- 22:15(22:15,山地时间)
- 12.5米(间隔12.5分钟)
有什么想法吗?使用您链接中的示例,我添加了一个时区检查和时间间隔交替检查,给您:
^(?:(?:[01]?[0-9]|2[0-3]):[0-5][0-9](?:[ECMP]ST|UTC)|\d+(?:\.\d+)?[mh])$
匹配E、C、M或P,后跟ST或UTC[ECMP]ST | UTC
匹配一个或多个数字,可以选择后跟一个点和多个数字\d+(?:\。\d+)
字面上匹配m或h[mh]
第二个示例中的MNT不在所需时区列表中?对不起,应该是MST(*ST始终表示标准时间)。修正了。+1关于如何利用*ST指定使表达式更优雅,而不是枚举所有时区的问题。。