`

用正则表达式替换手机号为星号*的写法

阅读更多

现在网络越来越关注一些隐私,比如手机号隐藏当中的若干位数字,或隐藏身份证,银行卡号当中的若干长度为星号

 

对于一些固定长度的内容转换其实都挺方便的,但对于一些非定长的内容想保留固定尾部内容或者头部内容的话就比较麻烦了。

这两天发现很多朋友都不会写这个正则表达式,这里拿出来分享下

 

比如手机号只显示头尾的各3个数字,最简单的做法就是截取头部三个数字和尾部三个数字,然后当中插入5个星号就可以

这种做法显得比较笨拙,当然效率可能高一些,不过缺乏灵活性,比如人名显示姓,名字换成对应的*,那人名长度现在一般在2-4个字,具体后面跟多少个星号*,根据人数迭代啥的就麻烦点了

 

如果使用正则的话,就比较灵活,代码也比较简单。

假设对一串数字,保留头尾各3个数字,当中全部替换成*的话,代码如下:

String mobile = "13123456789";
String outMobile = mobile.replaceAll("(?<=\\d{3})\\d(?=\\d{3})", "*");
System.out.println(outMobile);

正则表达式的意思是,把所有前面有3个数字,后面有3个数字的数字换成*,那么于是从字符串中的2开始到7均在这个条件范围内,所以就全部替换了。

 

其他的可以根据这个灵活变换,当然如果反复这么调用的话,性能不是很高,所以建议参考replaceAll的源码,先生成Pattern对象,然后直接调用pattern.matcher(mobile).replaceAll("*");来操作,这样可以节省对象创建的内存及性能方面的消耗

 

分享到:
评论
1 楼 sunshine_bean 2015-03-20  
今天才知道这个用法叫做“零宽断言”。
(?=exp)也叫零宽度正预测先行断言,它断言自身出现的位置的后面能匹配表达式exp。
(?<=exp)也叫零宽度正回顾后发断言,它断言自身出现的位置的前面能匹配表达式exp。

相关推荐

    jJAVA正则表达式替换字符

    本资源文件是我自己总结的,其中包括5个类,这5个类的代码基本...用正则表达式替换字符串内容,使用正则表达式切割字符串,字符串匹配,将字符串“&lt;msg&gt;ha&gt;ve modif”中的&gt;替换为&gt;将&lt;替换为&lt;将&替换为2. 等等情况!

    易语言正则表达式文本替换

    - 基本替换:如将所有数字替换为星号,可以使用模式`\d`和替换字符串`'*'`。 - 分组替换:如果需要保留某些部分,可以使用分组并仅替换其他部分。 - 全局替换:使用特定选项实现全局匹配和替换,替换所有出现的...

    wps表格excel正则工具,excel正则表达式替换/匹配/查找/搜索/提取数字

    让 Office Excel、WPS 表格支持正则表达式的免费插件:「Excel 正则工具」顾名思义,需要使用 “正则表达式(PCRE)” 的知识来进行操作,对于完全没有接触过正则的朋友也许有一定的入门门槛,但正则实在是太过强大...

    java使用正则表达式判断手机号的方法示例

    java使用正则表达式判断手机号的方法示例文章主要介绍了java使用正则表达式判断手机号的方法,分析了手机号码段的原理及java使用正则表达式针对手机号的匹配操作实现技巧。下面是文章中提到的知识点: 1. 手机号码...

    正则表达式替换文本_everyrk3_正则表达式_正则表达式替换文本_

    在替换文本时,我们通常使用编程语言提供的函数或方法,如Python的`re.sub()`,JavaScript的`String.prototype.replace()`,这些函数接受一个正则表达式和一个替换字符串作为参数,将所有匹配到的部分替换为指定的新...

    pb 使用正则表达式源码pbregexp

    标题中的“pb 使用正则表达式源码pbregexp”指的是在PowerBuilder(简称pb)环境中,利用名为“pbregexp”的正则表达式组件来实现源代码级别的正则表达式操作。PowerBuilder是一款流行的可视化的、面向对象的软件...

    正则表达式替换工具 1.1.0.9

    正则表达式替换工具1.1.0.9是一款专为处理文本字符串而设计的强大工具,它能够帮助用户测试和执行正则表达式,并进行批量替换操作。在信息技术领域,正则表达式(Regular Expression)是一种模式匹配语言,用于搜索...

    正则表达式(regex)C语言源码,超强查找/替换算法

    正则表达式(Regular Expression,简称regex)是编程领域中一种强大的文本处理工具,它用于在字符串中查找、替换或匹配特定模式。在C语言中,实现正则表达式功能通常需要借助第三方库,比如本案例中提到的Henry ...

    java 最新手机号码、电话号码正则表达式

    最新手机号码、电话号码正则表达式

    正则表达式转换工具

    正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它用于匹配、查找、替换等操作,涉及字符串处理的各个领域。正则表达式转换工具是专门针对这一需求而设计的,它能帮助用户将输入的内容转换...

    c#使用正则表达式验证身份证号码

    c#使用正则表达式验证身份证号码,工程完全可以运行,方便大家参考和学习

    2020年最新的手机号码和固话号码验证的正则表达式

    通过使用这些正则表达式,可以在Web开发中实现对用户输入的有效性校验,提高用户体验并减少潜在的数据错误。在实际应用过程中,还需要根据具体的业务需求进行适当的调整和完善。此外,随着技术的发展和规范的变化,...

    正则表达式(Deelx版)|正则表达式(Deelx版)支持库

    Deelx版是专门为提高正则表达式性能和功能而设计的一个支持库,适用于各种编程语言和应用场景。 1. **正则表达式基本概念** - **模式匹配**:正则表达式的核心在于模式,它是由特殊字符和普通字符组成的字符串,...

    全球手机号码正则表达式

    【全球手机号码正则表达式】 1.格式:JSON 2.例示:{"86":{"regex":"^(86){0,1}1\d{10}$","sn":"CN"}} 3.通过短号例如:86,从json的key中获取正则表达式(regex),国家代码(sn)

    vb正则表达式实例(正则表达式测试程序)

    下面将详细探讨正则表达式的基本概念、在VB.NET中的应用以及如何使用它们进行文本匹配。 1. 正则表达式基础 - **模式匹配**:正则表达式是一种特殊的字符序列,用于定义字符串的搜索模式。 - **元字符**:如 `.`...

    jq非空验证,js正则表达式验证邮箱和手机号码

    在本案例中,我们关注的是使用jQuery(jq)进行非空验证,以及使用JavaScript(js)的正则表达式来验证邮箱和手机号码的正确性。以下是关于这些知识点的详细说明: 1. **jQuery(jq)非空验证**: jQuery是一种轻...

    PB实现的正则表达式

    在IT领域,正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它能够进行复杂的模式匹配、查找、替换等操作。在本话题中,我们将探讨如何使用PowerBuilder 11.5这一经典的开发环境来实现正则...

    Lucene 使用正则表达式

    ### Lucene 使用正则表达式 #### 知识点概览 1. **Lucene简介** 2. **正则表达式(regex)在Lucene中的应用** 3. **regexQuery详解** 4. **示例代码解析** 5. **索引创建与查询流程** 6. **正则表达式的语法** #### ...

    后台读取文本内容用正则表达式替换换行符

    效果描述: 经常被&lt;textarea&gt;中的回车符给困扰着, 回车换行的内容(\r\n)经常需要显示为HTML中的 ,这时就需要做替换操作了。... 如果只是简单的将字符... 问题不难,关键是得懂得运用正则表达式来操作!

    wps正则表达式 以及 wps通过正则表达式验证手机号码

    在Excel表格处理中,正则表达式是一种强大的文本匹配工具,可以帮助我们进行复杂的数据验证、查找和替换操作。虽然默认情况下,WPS Excel并不直接支持正则表达式,但通过其自定义函数功能,我们可以创建自己的函数来...

Global site tag (gtag.js) - Google Analytics