object p6 {
def main(args: Array[String]): Unit = {
//正则查找:全部的手机号
// 规则:
// 1.11位数字
// 2.第一个数字是1
// 3.第二个数字是3-9的数
val reg1 = "1[3-9]\\d{9}".r
reg1.findAllIn("13812345678 and 13987654321 0181234567 11812345678 are phone numbers").toList.foreach(println)
//验证:给定的字符串是否符合正则表达式的要求
// 用户名的规则
// 1.长度在6-12位
// 2.只能以字母开头
// 3.只能包含字母,数字,下划线,#
val name1="_56!!@@@.com"
val name2="abc"
val name3="admin123#"
val reg2 = "[a-zA-Z][a-zA-Z0-9_#]{5,11}".r
//matches:验证字符串是否满足
println(reg2.matches(name1))
println(reg2.matches(name2))
println(reg2.matches(name3))
println(reg2.matches("a1231231231232312"))
//应用:替换
//要求把手机号的4-7位换成xxxx
// val reg3 = "1[3-9]\\d{9}".r
val reg3 = "(1[3-9]\\d)(\\d{4})(\\d{4})".r
val str="123 13812345678 and 13987654321 are phone numbers"
val newStr=reg3.replaceAllIn(str,m =>{
// println(m.group(1))
// println(m.group(2))
// println(m.group(3))
m.group(1)+"xxxx"+m.group(3)
})
println(newStr)
}
}