每日时间(带区域)或时间间隔的正则表达式

时间:2016-01-08 07:44:27

标签: python regex

全部,需要表单验证功能的正则表达式来确定用户的每日时间输入(24小时格式,始终使用时区)或间隔是否正常。有5个可能的时区(4个美国大陆+ UTC作为后缀)和2个区间类型(可以是浮点数,h或m后缀)。有效输入的一些例子是

  • 0:30(午夜半夜,东部时间)
  • 22:15MST(山区时间22:15)
  • 12.5m(间隔12.5分钟)

Accepted answer here是一个很好的开始,但是我无法完全使用时区后缀正则表达式,或者为间隔情况添加替换。

作为参考,所需的时区是EST,CST,MST,PST和UTC。或者,任何带有几个时区的例子就足够了,如果其他SO读者认为它有用,可以随时扩展。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

使用链接中的示例,我添加了时区检查和间隔的替换,您可以在这里:

^(?:(?:[01]?[0-9]|2[0-3]):[0-5][0-9](?:[ECMP]ST|UTC)|\d+(?:\.\d+)?[mh])$
  • [ECMP]ST|UTC匹配E,C,M或P,后跟ST或匹配UTC
  • \d+(?:\.\d+)?匹配一个或多个数字,可选地后跟一个点和更多数字
  • [mh]字面匹配m或h

https://regex101.com/r/cR3xA4/4