正则表达式为M / d / yyyy

时间:2012-11-16 07:09:23

标签: c# regex

我的字符串格式是M / d / yyyy。这意味着月份和日期数字前面没有零。 例如:2012年9月23日,2012年7月9日等

我试过了:

  

^((((0 [1-9] | [12] \ d | 3 [01]).- / .- /)|((0 [1-9] | [12] \ d | 30).- / .- /)|((0 [1-9] |≤1\ d | 2 [0-8])[.- /] 0 2 .- /)|?(29 [.- /]0?2.-/))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9 ] | [2-9] \ d)\ d {2}))|((0 [1-9] | [12] \ d | 30)(0 [13456789] | 1 [012])((1 [6-9] | [2-9] \ d)\ d {2}))|((0 [1-9] | 1 \ d | 2 [0-8])02((1 [6- 9] | [2-9] \ d)\ d {2}))|?(2902((1 [6-9] | [2-9] \ d)(0 [48] | [2468] [ 048] | [13579] [26])|((16 | [2468] [048] | [3579] [26])00)| 00))))$

但我想这是d / M / yyyy。

任何人都有M / d / yyyy的表达式吗?

3 个答案:

答案 0 :(得分:7)

如果您要验证日期是否采用M/d/yyyy格式,那么DateTime.TryParseExact是一个比Regex更好的解决方案。就像是。

string str = "9/23/2012";
DateTime dt;
if(DateTime.TryParseExact(str,
                          "M/d/yyyy",
                          CultureInfo.InvariantCulture,
                          DateTimeStyles.None, 
                          out dt))
{
    //valid date
}
else
{
    //Invalid date
}

答案 1 :(得分:1)

尝试使用此表达式

  

^((0 [1-9])|(1 [0-2])| [1-9])/(([1-9])|(0 [1-9])|(1 [0-9])|(2 [0-9])|(3 [0-1]))/(([0-9] {2})|([1-9] [0-9] { 3}))$

您可以从this site

中找到更多内容

答案 2 :(得分:-1)

谢谢你的回复,你们都帮了我。我的qns的表达是:

^([0]?[1-9]|[1][0-2])[./-]([0]?[1-9]|[1|2][0-9]|[3][0|1])[./-]([0-9]{4}|[0-9]{2})$