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)
}
}