正则表达式引用-手机号打码

25 阅读1分钟

matchs方法

正则表达式对象有matches方法,它的作用是验证给定的字符串是否满足正则表达式的要求。它的格式如下:

val 结果 = 正则.matches(目标字符串)

其中的结果是一个bool值。

代码有如下要求:

1.从文本文件中读入一些包含手机号的字符串

2.把手机号识别出来

3.把手机号的中间4位打码 结果保存到一个新的文本文件中

代码如下:

import scala.io.Source
import java.io.PrintWriter

object renwu {
  def main(args: Array[String]): Unit = {
    // 1. 读取address.txt文件内容
    val inputFile = "address.txt"
    val content = Source.fromFile(inputFile, "UTF-8").mkString

    // 2. 手机号正则(匹配11位手机号)
    val phoneRegex = raw"1[3-9]\d{9}".r

    // 3. 打码:将手机号中间4位替换为####
    val maskedContent = phoneRegex.replaceAllIn(content, m => {
      val phone = m.group(0)
      // 前3位 + #### + 后4位
      s"${phone.substring(0, 3)}####${phone.substring(7)}"
    })

    // 4. 保存到新文件(比如address_masked.txt)
    val outputFile = "address_masked.txt"
    val writer = new PrintWriter(outputFile, "UTF-8")
    writer.write(maskedContent)
    writer.close()

    println("处理完成!打码后的文件已保存为:" + outputFile)
  }
}

运行结果;

屏幕截图 2025-12-23 112256.png