正则表达式知识详解之分组 (java版示例)

前端之家收集整理的这篇文章主要介绍了正则表达式知识详解之分组 (java版示例)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

正则表达式知识详解系列,通过代码示例来说明正则表达式知识

代码下载地址: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

猜你在找的正则表达式相关文章