java正则表达式替换非标签内容_正则表达式知识详解之替换 (java版示例)

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

示例功能:

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("$1"));

//日期格式调整成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]

http://www.baidu.com,http://www.google.com

-----日期格式调整成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

相关文章

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值