正则表达式为hh:mm:ss tt string

时间:2012-07-02 17:14:09

标签: sql-server regex datetime

我看了几个正则表达式时间问题,但没找到我需要的问题,而且我对如何编写正则表达式表达方式一无所知。

我需要这样的时间值传递:

  • 06:03:05 AM
  • 06:03 pm
  • 6:3:5 AM

这个正则表达式似乎适用于此(我在Here找到了但我还需要AM / PM部分,但它也可能不区分大小写。

([0-1]?\d|2[0-3]):([0-5]?\d):([0-5]?\d)

总结我在这个正则表达式中需要的东西:

  • 单个数字h:m:s可接受
  • 两位数hh:mm:ss可接受
  • AM / PM要求但不区分大小写
  • 如果可以输入AM / PM部分作为a或p将是好的,但不是必需的
  • 秒是可选的
  • 24小时不接受

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

您提供的正则表达式支持24小时时间,以下我严格遵循您的请求

(1[012]|0?\d):[0-5]?\d(:[0-5]?\d)?\s+[AaPp][Mm]?

答案 1 :(得分:1)

只需在秒部分后面添加?,在地址末尾添加\s+[aApP][mM]

([0-1]?\d|2[0-3]):([0-5]?\d)(:([0-5]?\d))?\s+[aApP][mM]

如果你没有将24小时格式改为第一部分:

(1[0-2]|0?\d):([0-5]?\d)(:([0-5]?\d))?\s+[aApP][mM]