当前位置: 代码迷 >> ASP.NET >> 求个时间正则解决方案
  详细解决方案

求个时间正则解决方案

热度:3063   发布时间:2013-02-25 00:00:00.0
求个时间正则
2008-08-08 用正则怎么获得月和日


------解决方案--------------------------------------------------------
\d+-(\d+)-(\d+)
取第1和第2组就是月和日
------解决方案--------------------------------------------------------
这里是判断YYYY-MM-DD这种格式的,基本上把闰年和2月等的情况都考虑进去了,不过我已经忘了在哪里找到的。 

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



下面的是加了时间验证的 

^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$ 

你可以借鉴里面的
------解决方案--------------------------------------------------------
2008-08-08 用正则怎么获得月和日 

(?:[0-9]{4})-([0-9]{2})-([0-9]{2})

Groups[1] = 月 Groups[2]=日
------解决方案--------------------------------------------------------
C# code
string t = "2008-02-08";Regex r = new Regex(@"\d{4}.(\d{1,2}).(\d{1,2})");Match m = r.Match(t);if (m.Success && m.Groups.Count >= 3) {    string mPart = m.Groups[1].Value; // 月    string dPart = m.Groups[2].Value; // 日}
  相关解决方案