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

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

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

代码下载地址:http://download.csdn.net/detail/gnail_oug/9504094


示例功能

1、将手机号部分数字替换成*

2、给url增加链接a标签

3、更改日期格式

	/**
	 * 替换
	 * @date 2016-04-20 18:09:00
	 * @author sgl
	 */
	public static void replace(){
		System.out.println("------将数字替换成*--------");
		String str="2013hello04world20";
		//将数字替换成*
		System.out.println(str.replaceAll("\\d","*"));
		//将连续的数字替换成*
		System.out.println(str.replaceAll("\\d+","*"));
		//将手机号后四位替换成*
		System.out.println("------将手机号后四位替换成*--------");
		str="15200001111";
		System.out.println(str.replaceAll("\\d{4}$","****"));
		
		Pattern p=Pattern.compile("\\d{4}$");
		Matcher m=p.matcher(str);
		System.out.println(m.replaceAll("****"));
		
		//给链接地址增加a标签转换成超链接
		System.out.println("--------给链接地址增加a标签转换成超链接---------");
		str="http://www.baidu.com,http://www.google.com";
		//下面这个正则只是针对上面两个网址举例使用,因此这里不考虑复杂的网址
		p=Pattern.compile("(http://www\\..*?\\.com)");
		m=p.matcher(str);
		while(m.find()){
			System.out.println(m.group()+"   位置:["+m.start()+","+m.end()+"]");
		}
		//$1表示正则表达式里的第一个分组,$2表示第二个分组,依此类推
		System.out.println(m.replaceAll("<a href='$1'>$1</a>"));
		
		//日期格式调整成yyyy-MM-dd格式
		System.out.println("-----日期格式调整成yyyy-MM-dd格式------");
		str="我的生日是01/21/2001,你的生日是10/15/1999";
		p=Pattern.compile("(\\d{1,2})/(\\d{1,2})/(\\d{4})");
		m=p.matcher(str);
		while(m.find()){
			System.out.println(m.group()+"   位置:["+m.start()+","+m.end()+"] 年:"+m.group(3)+" 月:"+m.group(1)+" 日:"+m.group(2));
		}
		System.out.println(m.replaceAll("$3-$1-$2"));
		
		//把手机号中间几个数字替换成*
		System.out.println("----把手机号中间几个数字替换成*-----");
		str="15200001111,13932333232";
		p=Pattern.compile("(\\d{3})(\\d{4})(\\d{4})");
		m=p.matcher(str);
		System.out.println(m.replaceAll("$1****$3"));
		
	}

运行结果:

------将数字替换成*--------
****hello**world**
*hello*world*
------将手机号后四位替换成*--------
1520000****
1520000****
--------给链接地址增加a标签转换成超链接---------
http://www.baidu.com   位置:[0,20]
http://www.google.com   位置:[21,42]
<a href='http://www.baidu.com'>http://www.baidu.com</a>,<a href='http://www.google.com'>http://www.google.com</a>
-----日期格式调整成yyyy-MM-dd格式------
01/21/2001   位置:[5,15] 年:2001 月:01 日:21
10/15/1999   位置:[21,31] 年:1999 月:10 日:15
我的生日是2001-01-21,你的生日是1999-10-15
----把手机号中间几个数字替换成*-----
152****1111,139****3232
原文链接:/regex/359309.html

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