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

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

发布时间:2020-12-14 04:25:52 所属栏目:百科 来源:网络整理
导读:正则表达式知识详解系列,通过代码示例来说明正则表达式知识 源代码下载地址: http://download.csdn.net/detail/gnail_oug/9504094 示例功能: 1、将手机号部分数字替换成* 2、给url增加超链接a标签 3、更改日期格式 /** * 替换 * @date 2016-04-20 18:09:0

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

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

(编辑:李大同)

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

    推荐文章
      热点阅读