-4

如何在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$"
4

2 回答 2

0

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

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

(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.在评论中所说,使用适当的日期解析方法可能是要走的路。

于 2013-02-15T09:19:24.307 回答
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}))$
于 2013-02-15T09:29:54.777 回答