Sql server hh:mm:ss tt字符串的正则表达式

Sql server hh:mm:ss tt字符串的正则表达式,sql-server,regex,datetime,Sql Server,Regex,Datetime,我已经看了一些正则表达式时间问题,但还没有找到我需要的问题,而且我对如何编写正则表达式一无所知 我需要这样的时间值才能通过: 06:03:05上午 下午六时零三分 上午6:3:5 这个正则表达式似乎适用于此(我在上找到了它,但我还需要AM/PM部分,但它也可以不区分大小写) ([0-1]?\d|2[0-3]):([0-5]?\d):([0-5]?\d) 总结一下我在这个正则表达式中需要什么: 可接受单个数字h:m:s 两位数hh:mm:ss可接受 需要AM/PM,但不区分大小写 如果AM

我已经看了一些正则表达式时间问题,但还没有找到我需要的问题,而且我对如何编写正则表达式一无所知

我需要这样的时间值才能通过:

  • 06:03:05上午
  • 下午六时零三分
  • 上午6:3:5
这个正则表达式似乎适用于此(我在上找到了它,但我还需要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小时不可接受

任何帮助都将不胜感激。

只需在秒部分后添加
,并在re结尾添加
\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]

只需在秒部分后添加
,并在re的末尾添加
\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]

您提供的正则表达式支持24小时运行,下面我将严格遵循您的要求

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

您提供的正则表达式支持24小时运行,下面我将严格遵循您的要求

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

您如何在SQL Server中使用正则表达式?CLR?24小时时间如何?@AaronBertrand-这些时间将保存到SQL Server中。我的程序有一个不同的部分,它通过一个按钮设置当前时间,因此我不需要任何正则表达式,但我还需要允许在后端编辑时间。@jonnyGold-我没有使用24小时时间。如何使用正则表达式你在SQL Server中使用正则表达式吗?CLR?24小时时间怎么样?@AaronBertrand-这些时间将保存到SQL Server中。我的程序有一个不同的部分,它通过一个按钮设置当前时间,所以我不需要任何正则表达式,但我还需要允许在后端编辑时间。@jonnyGold-我没有使用24小时时间。他们说不军事时间,我将假设他们是美国人,是指24小时。@Mimisbrunr-很抱歉,我编辑了我的问题来澄清这一点。他们说没有军事时间,我将假设他们是美国人,是指24小时。@Mimisbrunr-很抱歉,我编辑了我的问题来澄清这一点。效果很好,这是最终的吗?最后使am/pm可选?它使[Mm]可选,这样am/pm可以添加为A或P。很好,这是最终的吗?最后使am/pm可选?它使[Mm]可选,这样am/pm可以添加为A或P