当前位置:编程学习 > JAVA >>

java 正则表达式

求助一个YYYYMMDD时间类型的正则表达式~~~谢谢~~ --------------------编程问答-------------------- [0-9]{4}[0-9]{2}[0-9]{2} --------------------编程问答-------------------- 这样可能不行吧~~不是时间啊~你这个20099090好像也能通过吧 --------------------编程问答-------------------- \d{4}(0\d|1[012])(0\d|[12]\d|3[01]) --------------------编程问答-------------------- mark --------------------编程问答-------------------- 这里还有闰年呢?咋办? --------------------编程问答-------------------- YYYYMMDD时间类型的正则表达式~
相当复杂的,
上面的只是判断正常状态下的,
像LS说的闰年的问题,那可能没有办法了.即使有,那正则 可能会很夸张.
daimojingdeyu的  \d{4}(0\d|1[012])(0\d|[12]\d|3[01]) 差不多了
\d{4}  年
(0\d|1[012]) 月
(0\d|[12]\d|3[01])  日 --------------------编程问答-------------------- \\d{4}\\d{2}\\d{2} --------------------编程问答-------------------- MARK. --------------------编程问答--------------------
   \d{4}-\d{2}-\d{2}  --------------------编程问答-------------------- 极其复杂,建议使用逻辑判断!

参考:http://blog.csdn.net/bao110908/archive/2008/02/29/2132973.aspx --------------------编程问答-------------------- 顶个! --------------------编程问答-------------------- --------------------编程问答-------------------- 格式:yyyyMMdd,年份1600-9999,带闰年判断 
^(?:(?:(?:(?:(?:1[6-9]|[2-9]\d)(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))0229)|(?:(?:(?:1[6-9]|[2-9]\d)\d{2})(?:(?:(?:0[13578]|1[02])31)|(?:(?:0[13-9]|1[0-2])(?:29|30))|(?:0[1-9]|1[0-2])(?:0[1-9]|1\d|2[0-8]))))$


--------------------编程问答-------------------- yyyyMMdd
带闰年判断 


(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))0229)
--------------------编程问答-------------------- 使用format的类来强制转化,通过是否有异常抛出来分支。 --------------------编程问答-------------------- 强悍,学习了 --------------------编程问答--------------------
引用 14 楼 lcl_data 的回复:
yyyyMMdd
带闰年判断


Java code(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))0229)


牛人,感觉还是用判断来实现更好 --------------------编程问答-------------------- 17楼的2011-01-8这个通过不了。 --------------------编程问答-------------------- --------------------编程问答-------------------- 何必手动输入日期呢?JSP的直接用My97DatePicker
后台直接用
try{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
}catch(Exception e){
  e.~~~();
} --------------------编程问答-------------------- 13楼牛X。。 --------------------编程问答-------------------- 这个也忒复杂了
引用 13 楼 lxcnn 的回复:
格式:yyyyMMdd,年份1600-9999,带闰年判断 
Java code
^(?:(?:(?:(?:(?:1[6-9]|[2-9]\d)(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))0229)|(?:(?:(?:1[6-9]|[2-9]\d)\d{2})(?:(?:(?:0[13578]|……




--------------------
http://www.mowker.com/list/ --------------------编程问答-------------------- --------------------编程问答-------------------- 为什么非要用正则表达式来验证闰年呢,下个时间控件来选择日期,会自动判别的呀。 --------------------编程问答-------------------- --------------------编程问答-------------------- 求闰月 --------------------编程问答--------------------
补充:Java ,  Eclipse
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,