2012-06-12 66 views
4

正则表达式我需要一个正则表达式格式用于验证的时间与AM/PM为12小时时间格式

我用这个

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

但不接受任何时间。

我的时间格式是12hr格式(03:23:15 AM)。 任何人都知道正则表达式与此工作?

+4

你*有*使用正则表达式,而不是'DateTime.TryParse' ?请注意,您的正则表达式甚至不会尝试包括上午/下午,也可以接受高达23作为小时数... –

回答

1

试试这个:

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

正则表达式包括上午下午太

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

你可以试试这个?

([0][0-9])|([1][0-2])\:[0-5][0-9]\:[0-5][0-9][:b]*(AM|PM|am|pm) 
  • 匹配XX:YY:ZZ其中
  • 第一项([0][0-9])|([1][0-2])比赛XX至00-09或10-12
  • 后续术语[0-5][0-9]约束YY,ZZ到分钟,00-秒59包容
  • 空间是可选
  • 最后上午或下午的大写或小写匹配
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)

+0

还“19:00:00 AM” – Rawling

2

试试这个:

[0][0-9]|[1][0-2][:][0-5][0-9][:][0-5][0-9][ ][AM]|[PM] 
相关问题