package reg
/**
* 目标:手机号打码
* 13612345678 -> 136****5678
*
* 任务:从一个文本文件中(自己准备一个),读出一段内容,把其中的手机号码识别出来,并打码。
*
* 例如:address.txt
* 湖北省 潜江市 泰丰办事处 青龙沟小区 X栋3单元 樊先生 13612345678,18712345678
*/
object reg04 {
def main(args: Array[String]): Unit = {
// 1. 从文本文件中读出内容
val content = scala.io.Source.fromFile("address.txt").mkString
println("读入进来的内容是:")
println(content)
// 2. 写一个手机号的正则
val reg = """1[35678]\d{9}""".r
// 匹配输出
reg.findAllIn(content).foreach(println)
}
}
代码解释
- 文件读取:用
Source.fromFile读取文本,mkString将内容转为字符串;
- 正则匹配:
1[3-9]\d{9}是国内手机号通用正则(以 1 开头,第二位是 3-9,后面跟 9 位数字);
- 打码替换:
replaceAllIn遍历所有匹配到的手机号,通过take(3)(取前 3 位)和takeRight(4)(取后 4 位)拼接成打码格式。