正则表达式知识详解之替换 (java版示例)
2016-04-29 09:23
447 查看
正则表达式知识详解系列,通过代码示例来说明正则表达式知识
源代码下载地址:http://download.csdn.net/detail/gnail_oug/9504094
示例功能:
1、将手机号部分数字替换成*
2、给url增加超链接a标签
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
源代码下载地址: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
相关文章推荐
- RPC应用的java实现(转)
- 4.29 java
- Java模糊查询方法详解
- 图文详解Java环境变量配置方法
- 解析Java程序中对象内存的分配和控制的基本方法
- LinkedList详解
- JVM内存的设置(解决eclipse下out of memory问题)
- JAVAEE项目结构以及并发随想
- java项目中经常碰到的内存溢出问题: java.lang.OutOfMemoryError: PermGen space, 堆内存和非堆内存,写的很好,理解很方便
- java中LinkedList的实现
- Java开发中的23种设计模式详解(转)
- ArrayList类详解
- java初学者:构造方法 技术文章
- JDBC(Java Data Base Connectivity)
- spring大文件分块上传原理解析
- 序列化与反序列化
- 在Java里处理文件的技巧
- java基础练习题
- java perf
- 用Base64加解密时发现的问题(其实时java基础问题byte[]转String)