如何在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$"
看起来您的正则表达式存在 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.在评论中所说,使用适当的日期解析方法可能是要走的路。
用这个:
^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}))$