scala正则表达式

74 阅读1分钟
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")) //
  }
}

输出结果

image.png

这段正则表达式 ^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 位的数字串”(即符合早期手机号格式)。