正则表达式—手机号打码

21 阅读1分钟
package reg
/**
 *目标:
 *  13612345678   ->  136****5678
 *任务:从一个文本文件中(自己准备一个),读出一段内容,把其中的手机号识别出来,并打码
 * address.txt
 * 湖北省 潜江市 泰丰办事处 青龙沟小区 X栋3单元 范先生 13612345678 ,13678245678
 *
 */
object reg04 {
  def main(args: Array[String]): Unit = {
    //定义一个正则表达式
   val content= scala.io.Source.fromFile("address.txt").mkString
    println("请输入进来的内容:")
    println(content)
    //写一个手机号的正则
    val reg = "i[35678]\d{9}".r
    //val reg = "SB".r
    //匹配输出

    reg.findAllIn(content).foreach(println)
    //替换:正则的典型的应用场景
    //replaceAllIn,全部替换。
    //在content中通过正则去找字符串,找到之后,就换成指定的内容,并把最终结果保存到newContent
  // val newContent= reg.replaceAllIn(content,"嘿嘿,这儿有个手机号")
    val newContent= reg.replaceAllIn(content,m => {
     println("")
      //println()
     //"手机号:"+m
     //m的前三位+”****"+m的后四位
      m.toString().substring(0,3)+"****"+m.toString().substring(7)
    })
    println("替换之后的内容")
    println(newContent)
  }
}

image.png