object class9 {
def main(args: Array[String]): Unit = {
// 定义一个正则表达式
val reg = "^1[3578]\d{9}$".r // 1的后面跟着3,5,7,8,后面再跟着9个相邻的数字
println(reg.matches("13612345678")) //
println(reg.matches("12612345679")) //
println(reg.matches("1361234569")) //
println(reg.matches("136123456791")) //
}
}
输出结果
这段正则表达式 ^1[3578]\d{9}$ 是用来匹配手机号格式的,各部分含义如下:
^:匹配字符串的开头,确保内容从这里开始。1:固定匹配字符 “1”(手机号开头都是 1)。[3578]:匹配方括号内的任意一个字符,这里代表手机号第二位是 3、5、7、8 中的一个。\d:匹配任意一个数字(等价于[0-9],Scala 中需要转义所以写\d)。{9}:限定前面的\d必须连续出现9 次(手机号共 11 位,前面已经匹配了 2 位,这里补 9 位)。$:匹配字符串的结尾,确保内容到这里结束(避免后面多出其他字符)。
简单说:这个正则是用来验证 “以 1 开头、第二位是 3/5/7/8、总长度 11 位的数字串”(即符合早期手机号格式)。