new_culture
2016-10-14 06:08
采纳率: 100%
浏览 1.5k
已采纳

求日期格式正则表达式

求日期格式正则表达式

String a = "yyyyMMdd";
String b = "yyyy MM dd";
String c = "yyyy-MM-dd";
String d = "yyyy/MM/dd";
String e = "yyyy.MM.dd";
String f = "MM-yyyy-dd";
String g = "dd MM yyyy";
String h = "yyyy-dd-MM";
//匹配上面的格式
//年 月 日 位置变换 还可以匹配的正则~

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • oyljerry 2016-10-14 06:15
    已采纳
     一、简单的日期判断(YYYY/MM/DD): 
    ^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$
    二、演化的日期判断(YYYY/MM/DD| YY/MM/DD): 
     ^(^(\d{4}|\d{2})(\-|\/|\.)\d{1,2}\3\d{1,2}$)|(^\d{4}年\d{1,2}月\d{1,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-))$
    

    http://www.cnblogs.com/jay-xu33/archive/2009/01/08/1371953.html

    打赏 评论
  • 飞向札幌的班机 2016-10-14 06:16

    正则或一下就可以了,你肯定是懒

    打赏 评论
  • threenewbee 2016-10-14 07:53

    你这个本身是有歧义的
    比如 2016-02-03
    到底算yyyy-dd-MM还是yyyy-MM-dd

    首先你要归纳出一个没有歧义的列表。
    然后正则很简单,用(格式1)|(格式2)|(格式3)...
    这样罗列下就可以了。

    打赏 评论
  • threenewbee 2016-10-14 07:58
     yyyy-MM-dd
    就是
    (19)|(20)\d{2}\-\d{2}\-\d{2}
    
    打赏 评论

相关推荐 更多相似问题