如何使用正则表达式验证日期格式?

时间:2013-02-15 08:54:22

标签: c# regex

如何使用c#中的正则表达式验证以下格式..你可以帮帮我..

Today's Date: 03:30 AM ET, 02/15/2013

我使用了以下格式,但它不起作用..

@"^ Today's Date: (\d{2})(\:)(\d{2})$ AM ET, ^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d$"

2 个答案:

答案 0 :(得分:0)

您的正则表达式看起来有3个问题:

  • 今天
  • ^T之间有一个前导空格
  • 正则表达式中用于匹配日期和月份的部分顺序错误
  • 表达式中间的$^不应该在那里

(0[1-9]|[12][0-9]|3[01])匹配01到31 和(0[1-9]|1[012])匹配01到12

制作更正的图案:

^Today's Date: (\d{2})(\:)(\d{2}) AM ET, (0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$

但正如Rahul R.在评论中所说,使用正确的日期解析方法可能就是这样。

答案 1 :(得分:0)

使用此:

^Today's Date: ([01][0-9]|[2[0-3]):([0-5][0-9]) [AP]M ET, ((0[1-9]|[12][0-9]|3[01])/(?=(0[13578]|1[02]))(0[13578]|1[02])|(0[1-9]|[12][0-9]|30)/(?=(0[469]|11))(0[469]|11)|(0[1-9]|[12][0-9])/(?=(02))(02))/(0{3}[1-9]|((?!0{3}\d)\d{4}))$