正则表达式为M/d/yyyy

10e*_*e5x -2 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的表达吗?

Hab*_*bib 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
}
Run Code Online (Sandbox Code Playgroud)