正则表达式知识详解系列,通过代码示例来说明正则表达式知识
源代码下载地址:http://download.csdn.net/detail/gnail_oug/9504094
示例功能:
给一个人的身份证号,查看这个人的出生地编码和出生日期
/** * 分组 * @date 2016-04-20 17:02:22 * @author sgl */ public static void group(){ //提取身份证号里的所属地区编号和出生日期 String str="411421199203048877,433421199304057583"; Pattern p=Pattern.compile("(\\d{6})(\\d{8})\\d{4}"); Matcher m=p.matcher(str); while(m.find()){ //m.group() 整个匹配结果 //m.group(1)第一个子表达式表达式 //m.group(2)第二个子表达式表达式 System.out.println("身份证号:"+m.group()+" 所属地区编号:"+m.group(1)+" 出生日期:"+m.group(2)); } System.out.println("-----子表达式取值顺序------"); //判断第几个表达式时,只看左括号的顺序,如下面 //第一个表达式为((\\d{6})(\\d{8})) //第二个表达式为(\\d{6}) //第三个表达式为(\\d{8}) p=Pattern.compile("((\\d{6})(\\d{8}))\\d{4}"); m=p.matcher(str); while(m.find()){ //m.group() 整个匹配结果 //m.group(1)第一个子表达式表达式 //m.group(2)第二个子表达式表达式 System.out.println("身份证号:"+m.group()+" 所属地区编号+出生日期:"+m.group(1)+" 所属地区编号:"+m.group(2)+" 出生日期:"+m.group(3)); } }
运行结果:
身份证号:411421199203048877 所属地区编号:411421 出生日期:19920304 身份证号:433421199304057583 所属地区编号:433421 出生日期:19930405 -----子表达式取值顺序------ 身份证号:411421199203048877 所属地区编号+出生日期:41142119920304 所属地区编号:411421 出生日期:19920304 身份证号:433421199304057583 所属地区编号+出生日期:43342119930405 所属地区编号:433421 出生日期:19930405