加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则匹配

发布时间:2020-12-13 19:48:36 所属栏目:百科 来源:网络整理
导读:日期,时间的简单匹配(只说格式,不做具体计算)如下: String[] date = null; String dateReg = "^d{4}(-|/|.)d{1,2}$"; Pattern datep = Pattern.compile(dateReg); Matcher datem = datep.matcher(dateString); if (datem.matches()) { date =

日期,时间的简单匹配(只说格式,不做具体计算)如下:

String[] date = null;
String dateReg = "^d{4}(-|/|.)d{1,2}$";
Pattern datep = Pattern.compile(dateReg);
Matcher datem = datep.matcher(dateString);
if (datem.matches()) {
date = dateString.split("-");
} else {
Date d = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
date = format.format(d).split("-");
}

String[] time = null;
String timeReg = "^[012]?d[:][012345]?d$";
Pattern timep = Pattern.compile(timeReg);
Matcher timem = timep.matcher(timeString);
if (timem.matches()) {
time = timeString.split(":");
} else {
Date d = new Date();
SimpleDateFormat format = new SimpleDateFormat("HH:mm");
time = format.format(d).split(":");
}

但是对于复杂的日期匹配,还需要进行计算,可以参考如下(摘抄):

一、简单的日期判断(YYYY/MM/DD):

Java代码 ^d{4}(-|/|.)d{1,2}1d{1,2}$ ^d{4}(-|/|.)d{1,2}$

二、演化的日期判断(YYYY/MM/DD| YY/MM/DD):

Java代码 ^(^(d{4}|d{2})(-|/|.)d{1,2}3d{1,2}$)|(^d{4}年d{1,2}月d{1,2}日$)$ ^(^(d{4}|d{2})(-|/|.)d{1,2}日$)$

三、加入闰年的判断的:

实例:

Java代码 ^((((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]|1d|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]|1d|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://hi.baidu.com/niuhea/item/1c09e332186614169cc65e12

此外,还有其他情况,如邮箱,电话号码等:

http://rongzhending.blog.163.com/blog/static/10279614520107322352727/

另:在代码拷贝的过程中往往会带 xx. 这样的前缀,xx是数字,要去掉可以使用正则 [0-9]{2,3}.或者 ^[0-9]{2,3}. ,我一般使用前者,很多情况复制的前面有一些空格

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读