正则表达式-手机号验证

21 阅读2分钟

1.正则表达式的定义

  • 正则表达式(Regular Expression)是一种用于匹配、查找和替换文本中特定模式的字符串

  • 它的应用场景包括:

    1.数据验证

    2.文本搜索和替换

    3.数据提取

2.第一个正则表达式的案例

  • 要点:

    1. 在scala中,正则表达式就是在字符串的后面添加.r。

    2. \是对\进行转义。\d是一个整体,用来表示一个整数。

  • 正则表达式的使用步骤

    1. 定义匹配规则。写正则表达式

    2. 定义数据,准备要匹配的内容。

    3. 将字符串使用规则进行匹配。

/**
 * 1.什么是正则表达式
 *        正则表达式是一种用来匹配字符串的强大工具,它由普通字符(例如字符a 到 z)和特殊字符(称为“元字符”)组成
 *
 * 2.使用步骤
 *      (1)定义一个正则表达式。  "".r
 *      (2)调用正则表达式的相关方法
 *
 * 3.规则
 *      (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 soure = "67891 one 2105 two 3 4 5"
    reg.findAllIn(soure).foreach(println)
    //2.验证。检查给定目标字符串,是否符合正则表达式的要求
    //reg.matches()
  }
}

3.匹配合法手机号

object reg02 {
  def main(args: Array[String]): Unit = {
    //定义一个正则表达式

    val reg = "\b1[3578]\d{9}".r  //1的后面跟着10个相邻的数字

    //1.匹配。在目标字符中,把符合正则表达式要求内容,拔出来
    val soure = "13674847578  15368675848  17384784947 10374674847 429005200609183675"

    reg.findAllIn(soure).foreach(println)

  }
}

4.基本组成部分

/**
 *
 * 目标:在给定的字符串中,匹配出合法的手机号
 *    1.有11个连续的数字
 *    2.手机号以1开头
 *
 *
 *
 * 3.规则
 *      (1)\d 表示一个数字
 *      (2)\b表示边界。空格,或者是最开始
 *      (3)\d{4} 表示四个数字  {n} 量词。让前面的规则重复n次
 *      (4)[]。表示其中任意一个字符。[3578]就是四个数字中的一个
 *      (5)^ 表示开始
 *      (6)$ 表示结束
 *
 */
object reg03 {
  def main(args: Array[String]): Unit = {
    //定义一个正则表达式

    val reg = "^1[3578]\d{9}$".r  //1的后面跟着10个相邻的数字

    println(reg.matches("13674847578"))
    println(reg.matches("15368675848"))
    println(reg.matches("17384784947"))
    println(reg.matches("10374674847"))

  }
}