码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式尝试

时间:2017-01-01 00:01:42      阅读:340      评论:0      收藏:0      [点我收藏+]

标签:java   限制   其他   数字   mat   bsp   []   pattern   表达式   

package Test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
* 邮箱:@前面包含5-14位数字,字母下划线,@后面是qq,126,163,yahoo,gmail,sina,然后是com或者cn。
* 电话号码:11位数字,开头两位是13,15,16,17,18,19
* 身份证18位:5开头;第7、8位19或者20;第11位0或者1;第13位0或1或2或3;第18位可能为x
* 域名:www开头,然后是个“.”,后面是数字或者字母或者下划线(不限长度),然后是“.”,com或者cn或者com.cn。
*/
public class Test1 {
public static void main(String[] args) {
Pattern p1 = Pattern.compile("^\\w{5,14}@(qq|126|163|yahoo|gmail|sina)\\.(com|cn)$");
Matcher m1 = p1.matcher("gebi_laowang2016@sina.cn");
System.out.println(m1.matches());

Pattern p2 = Pattern.compile("^1(3|4|5|6|7|8)\\d{9}$");
Matcher m2 = p2.matcher("15623479501");
System.out.println(m2.matches());

Pattern p3 = Pattern.compile("^5\\d{5}(19|20)\\d{2}(0|1)\\d(0|1|2|3)\\d{4}(X|[0-9])$");
Matcher m3 = p3.matcher("54614719281231468X");
System.out.println(m3.matches());

Pattern p4 = Pattern.compile("^(WWW|www)\\.\\w{1,}\\.(com|cn|com.cn)$");
Matcher m4 = p4.matcher("www.dgjfgkhkg345476.com.cn");
System.out.println(m4.matches());	
}
}

  

1、  “.”  “+”  “?”  “*”  等的匹配,在前面加  “\\”

2、 身份证里面日期的匹配有个小问题,比如 19900228,当月份为02时,日期不能超过28,其他月份也有类似限制,这在正则表达式里面有没有快捷的解决方案(除了逐月写出外)?

正则表达式尝试

标签:java   限制   其他   数字   mat   bsp   []   pattern   表达式   

原文地址:http://www.cnblogs.com/wshlf/p/6240470.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!