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

来源:互联网 发布:知乎就是个垃圾堆 编辑:程序博客网 时间:2024/05/16 04:27

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

源代码下载地址: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 日:2110/15/1999   位置:[21,31] 年:1999 月:10 日:15我的生日是2001-01-21,你的生日是1999-10-15----把手机号中间几个数字替换成*-----152****1111,139****3232







0 0
原创粉丝点击