object reg05 {
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{2})(\d{4})(\d{4})""".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(m.group(0)) // 当前正则匹配到完整的内容
println(m.group(1)) // 当前正则的第一个分组(第一个小括号)匹配到的内容
println(m.group(2))
println(m.group(3))
m.group(1) + "****" + m.group(3)
})
println("替换之后的内容是:")
println(newContent)
}
}