String的replaceAll方法中的正则表达式用法
来源:互联网 发布:跳跃网络ceo吴亚西 编辑:程序博客网 时间:2024/04/24 19:38
项目里面 需要对已手机号码进行 如下的显示
比如15088688388 要显示为150****8388的效果
实现这个简单的效果 方法有很多
我想试试用正则表达式去实现
查了点资料最终试出来以下方法可行
System.out.println("15088688388".replaceAll("(\\d{3})(\\d{4})","$1****"));
输出结果:150****8388
首先对replaceAll方法的第一个参数进行解释
第一个参数指定了需要替换的地方
(\\d{3})表示"15088688388" 这个字串的前3位,即"150",视为第1组,跟第二个参数的$1相对应,(\\d{4})则表示跟在前三位之后的4位,即"8868",视为第2组。
当然(\\d{3}),也可以写成(150) 这种子串,,(\\d{4})可以写成(8868),所以最终也可以写成这样System.out.println("15088688388".replaceAll("(150)(8868)","$1****"));
replaceAll方法的第二个参数表示对需要替换的地方怎么个替换法
在第二个参数的"$1****"中,$1表示第一个参数中的第1组,即(\\d{3}),也即"150"。"****"是追加在"150"后面,"$1****"表示"150****"。同样,如果第二个参数里面出现$2,就表示第一个参数的第二组,就是(\\d{4}),即"8868"。
需要注意的是,如果第一个参数定义了几个组,第二个参数中没出现相对应的分组$,那就是去掉的意思。上面那个例子中,$2没出现,相当于replace.("8868", "")的作用。
还有$0表示整个字符串的意思,即第一个参数的所有分组组成的字串,上述例子的(\\d{3})(\\d{4}),即"1508868"。
再举例一个
String str = "012345678231206546123";
System.out.println(str.replaceAll("(123)(45678)", "$1.jsp"));
打印出的结果是:
0123.jsp231206546123
- String的replaceAll方法中的正则表达式用法
- String的replaceAll方法中的正则表达式用法
- String.replaceAll() 正则表达式
- String.replaceall正则表达式
- 正则表达式,关于String.replaceALL()
- 正则表达式,关于String.replaceALL()
- String的replaceAll方法
- String的ReplaceAll方法
- java 正则表达式String.replaceAll( "\\s+ ", "| ")
- Java中的String的replace方法和replaceAll方法
- JS使用正则表达式实现ReplaceAll方法
- 正则表达式:string.replaceAll()中的特殊字符($ \)与matcher.appendReplacement
- 1基础-013-1:正则表达式:string.replaceAll()中的特殊字符($ \)与matcher.appendReplacement
- Java String.replaceAll()的方法
- String 对象中的 正则表达式方法 match
- String 对象中的 正则表达式方法 replace
- String 对象中的 正则表达式方法 split
- String 对象中的 正则表达式方法 search
- 子网掩码计算器java源码
- 每周好书推荐《那些古怪又令人忧心的问题》
- springmvc+ mybatis 整合cms内容发布平台
- Filter入门介绍
- PHP 如何设置一个严格30分钟过期的SESSION
- String的replaceAll方法中的正则表达式用法
- bzoj4872 [Shoi2017]分手是祝愿 (期望概率DP)
- 读《精通springmvc4》读书笔记
- Qt架构
- Android 和JavaScript 中的java方法加 @JavascriptInterface的原因分析:
- 技术问答整理(3)
- H5 canvas基础入门到捕鱼达人小游戏实现(1)
- Reincarnation
- 复杂性科学