求一正则表达式匹配YYYY.MM.DD日期格式 String [] str = {"2010.1.12","09.12.12","09.1.12"}; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用反向引用进行简化,年份0001-9999,格式yyyy-MM-dd或yyyy-M-d,连字符可以没有或是“-”、“/”、“.”之一。^(?:(?!0000)[0-9]{4}([-/.]?)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2\2(?:29))$ 按楼主标题要求正则应该是^(?:(?!0000)[0-9]{4}\.(?:(?:0[1-9]|1[0-2])\.(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])\.(?:29|30)|(?:0[13578]|1[02])\.31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)\.02\.29)$当然,如果是用在Java程序中,把\替换为\\不知道楼主给的三个例子想说明什么,这几个都是不能通过验证的 Java 中 我要匹配的是String [] str = {"2010.1.12","09.12.12","09.1.12"};这三种可能性 ((20)?(10|09))(\\.(1[0-2])|([1-9]))(\\.(3[0-1])|(2\\d)|1\\d|[1-9])刚学正则表达式,试着写了一个。这里没考虑闰月的问题,年的表示也仅仅满足LZ的那个内容,可根据需要完善。 var CheckDate=str.match(/^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2})$/);//判断字符串是否为日期YYYY-MM-DD || YYYY/MM/DD 这里用正则不合适,用SimpleDateFormat,依次用“yyyy.M.d”、“yy.MM.d”和“yy.M.d”来parse字符串,只要一个成功即为合法字符串。parse得到Date类型值后,统一为"yyyy.MM.dd"输出是很容易的事情。 excel中文文件名传到后台乱码 求日历记事本,能实现到期提醒功能 怎样根据指定的条件截取字符串 各位大大,帮忙看下,能解决的解决下,没时间的给个建议也行 华为的网络存储及网络安全产品线部门怎么样呀? 请问如何在JavaBean中读取JSP的Session对象和Request对象? 关于天乙社区在internet上发布的问题 求一个数据库连接池的例子! 菜鸟上路:请高手给我一个连接池吧,谢谢! 请问如何判别一个String变量为空或者null? IE和火狐页面怎么高亮显示? Tomcat下没有编译后的class文件
按楼主标题要求正则应该是^(?:(?!0000)[0-9]{4}\.(?:(?:0[1-9]|1[0-2])\.(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])\.(?:29|30)|(?:0[13578]|1[02])\.31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)\.02\.29)$
当然,如果是用在Java程序中,把\替换为\\不知道楼主给的三个例子想说明什么,这几个都是不能通过验证的
刚学正则表达式,试着写了一个。这里没考虑闰月的问题,年的表示也仅仅满足LZ的那个内容,可根据需要完善。
parse得到Date类型值后,统一为"yyyy.MM.dd"输出是很容易的事情。