Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用于每日时间(带区域)或时间间隔的正则表达式_Python_Regex - Fatal编程技术网

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

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。当然,只

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

  • 美国东部时间0:30(东部时间午夜半)
  • 22:15(22:15,山地时间)
  • 12.5米(间隔12.5分钟)
这是一个很好的开始,但我无法让时区后缀regex正常工作,也无法为interval案例添加替代项

作为参考,所需时区为EST、CST、MST、PST和UTC。当然,只要有几个时区的例子就足够了,如果其他读者觉得有用的话,也可以扩展


有什么想法吗?

使用您链接中的示例,我添加了一个时区检查和时间间隔交替检查,给您:

^(?:(?:[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

第二个示例中的MNT不在所需时区列表中?对不起,应该是MST(*ST始终表示标准时间)。修正了。+1关于如何利用*ST指定使表达式更优雅,而不是枚举所有时区的问题。。