reg

27 阅读2分钟
  1. 什么是正则表达式正则表达式
  • 是一种用来匹配字符串的强大工具,它由普通字符(例如字符 a 到 z)和特殊字符(称为 “元字符”)组成。
  1. 使用步骤
  • (1)定义一个正则表达式: ".*".r
  • (2)调用正则表达式的相关方法
  1. 规则
  • (1)\d表示一个数字
  • (2)\d{4}表示四个数字 {n}量词,让前面的规则重复那n次
object reg01 {
  def main(args: Array[String]): Unit = {
    // 定义一个正则表达式
//    val reg = "\d\d\d".r
    val reg = "\d{4}".r
    // 1. 匹配:在目标字符串中,把符合正则表达式要求的字,找出来。
    val source = "67891 one 2105 two 3 4 5"
    reg.findAllIn(source).foreach(println)
    // 2. 验证:检查给定目标字符串,是否符合正则表达式的要求。
    // reg.matches()
  }
}

目标:在给定字符串中,匹配出合法的手机号

  1. 有 11 个连续的数字
  2. 手机号以 1 开头
  3. 手机号的第 2 位:必须是 3578 中的某一个
  • 规则
  • (1)\d 表示一个数字
  • (2)\b 表示边界、空格,或者是开始
  • (3)\d {10} 表示 10 个数字,{n} 是让前面的规则重复 n 次。
  • (4)[],表示匹配任意一个字符。[3578] 就是 4 个数字中的一个 [3-9] 就是 3456789 中的某一个 [a-z] 就是 26 个字母中的某一个
  • (5)^表示开始
  • (6)$表示结束
object reg02 {
  def main(args: Array[String]): Unit = {
    // 定义一个正则表达式
    val reg = "\b1[3578]\d{9}".r // /1的后面跟着3,5,7,8,后面再跟9个相邻的数字
    // 1. 匹配:在目标字符串中,把符合正则表达式要求内容,找出来。
    val source = "1a912345678 15612345678, 10612345678, 13812345678, 17912345678, 429005198406110045"
    reg.findAllIn(source).foreach(println)
  }
}
object reg03 {
  def main(args: Array[String]): Unit = {
    // 定义一个正则表达式
    val reg = "^1[3578]\d{9}$".r // /1的后面跟着3,5,7,8,后面再跟9个相邻的数字
    // 1. 匹配:在目标字符串中,把符合正则表达式要求内容,找出来。
    println(reg.matches("13612345678")) //
    println(reg.matches("12612345679")) //
    println(reg.matches("1361234567")) //
    println(reg.matches("136123456791")) //
  }
}