正则表达式(练习)1.5

15 阅读1分钟

题目

1.从文本文件中读入一些包含手机号的字符串 2.把手机号识别出来 3.把手机号的中间四位打码,保存到一个新的文件中。

【例如】

小花,湖北潜江盛世城3楼303号,13133312146

👇

小花,湖北潜江盛世城3楼303号,131####2146

package reg

object reg03 {
  def main(args: Array[String]): Unit = {
    // 1. 读入文件
    val source = scala.io.Source.fromFile("input.txt").mkString
    // source.foreach(print)

    // 2. 匹配手机号
    val reg = "(1[3456789]\d)(\d{4})(\d{4})".r
    // 3. 替换
    // group(0) 匹配到的整个字符串
    // group(1) 匹配到的第一个分组
    // group(2) 匹配到的第二个分组
    // group(3) 匹配到的第三个分组
    val newSource = reg.replaceAllIn(source, m => {
      println(m.group(0))
      println(m.group(1))
      println(m.group(2))
      println(m.group(3))
      m.group(1) + "****" + m.group(3)
      // m.group(1).toString
    })

    // 4. 写出
    val writer = new java.io.PrintWriter("output_new.txt")
    writer.write(newSource)
    writer.close()
  }

}