正常表达式为dd / MM / yyyy或dd / MM / yyyy hh:mm:ss

时间:2009-11-03 16:17:20

标签: .net regex

我会承认我对正则表达式的垃圾,并找到一些应该使它们更难以使用的工具。那是我的错...但无论如何..

任何人都可以提出一个允许两者的正则表达式 dd / MM / yyyy和/或dd / MM / yyyy hh:mm:ss

是的,我用Google搜索并搜索了regexlib。

非常感谢。

提前干杯。

更新:

伙计们,我显然认为服务器端解析..我正在专门请求正则表达式。 我可能还会依赖它。

我还查看了许多在线资料,包括Google快速提供的网站,所以请不要提交明显的网站,因为我已经尝试过这些网站并在此处提出问题。

更新:

伙计们,我倾向于通过服务器端日期解析来做这件事..但我仍然很好奇正则表达式是什么。

6 个答案:

答案 0 :(得分:4)

你可能最好使用DateTime.TryParseExact()。它有一个重载,允许您指定多种可能的格式。

答案 1 :(得分:3)

这是一个

[0-9]{2}/[0-9]{2}/[0-9]{4}( [0-9]{2}:[0-9]{2}:[0-9]{2})?

编辑:改进格式,感谢Nathan Campos。

或者,消除了更多无效值:

[0-3][0-9]/[01][0-9]/[0-2][0-9]{3}( [0-2][0-9]:[0-5][0-9]:[0-5][0-9])?

答案 2 :(得分:0)

您可以在此处尝试不同的建议:http://www.regexr.com/

答案 3 :(得分:0)

这应该可以正常工作,并进行大多数验证(除了几个月的天数):

([0-2][0-9]|3[0-1])/(0[1-9]|1[0-2])/[0-9]{4}( ([0-1][0-9]|2[0-3])(:[0-5][0-9]){2})?

您可以在日期中添加按月计算的情报,但RegEx表达式看起来相当毛茸茸。

答案 4 :(得分:0)

这对我有用

^(0[1-9]|[12][0-9]|3[01])[-]?(0[1-9]|1[0-2])[-]?(18|19|20|21)\\d{2} ([0-2][0-4]:[0-5][0-9]:[0-5][0-9])$

有效数据格式为25-03-2014 24:10:10 如果您需要验证25/03/2014 24:10:10使用此

^(0[1-9]|[12][0-9]|3[01])[/]?(0[1-9]|1[0-2])[/]?(18|19|20|21)\\d{2} ([0-2][0-4]:[0-5][0-9]:[0-5][0-9])$

答案 5 :(得分:0)

Reg Ex:

^ [0-9] {1,2} / [0-9] {1,2} / [0-9] {4}([0-9] {2}:[0-9] { 2}:[0-9] {2}(A | P | a | p)(M | m))?$

E.g。

5/31/2016 12:00:00 PM

2016年5月31日

2016年5月3日

05/3/2016 12:00:00 PM

5/3/2016 12:00:00 PM

5/3/2016 12:00:00 AM