正则表达式12小时时间格式

时间:2012-06-12 10:07:31

标签: c# regex

我需要一个正则表达式格式来验证AM / PM的时间

我用过这个

^(?:0?[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$

但这不是任何时候都接受的。

我的时间格式为12小时格式(上午03:23:15)。 任何人都知道使用正则表达式来处理这个???

4 个答案:

答案 0 :(得分:2)

你能试试吗?

([0][0-9])|([1][0-2])\:[0-5][0-9]\:[0-5][0-9][:b]*(AM|PM|am|pm)
  • 匹配xx:yy:zz where
  • 第一个词([0][0-9])|([1][0-2])将xx与00-09或10-12
  • 相匹配
  • 后续条款[0-5][0-9]约束yy,zz为分钟,从00-59开始的秒数
  • 空格是可选的
  • 最后AM或PM匹配大写或小写

答案 1 :(得分:2)

试试这个:

[0][0-9]|[1][0-2][:][0-5][0-9][:][0-5][0-9][ ][AM]|[PM]

答案 2 :(得分:1)

试试这个:

(1[012]|[1-9])(:[0-5][0-9]){2}(\\s)?(?i)(am|pm)

正则表达式也包括am pm

(\\s)?  - follow by a white space (optional)
(?i)    - next checking is case insensitive
(am|pm) - follow by am or pm

答案 3 :(得分:1)

[01][0-9]:[0-5][0-9]:[0-5][0-9] (AM|PM)应与您的示例匹配。

[01]\d(:[0-5]\d){2} (AM|PM)如果你想简化它。

编辑:评论指出这不起作用,请尝试:([01][0-2]|0?[1-9])(:[0-5][0-9]){2} (AM|PM)