scala正则表达式-手机号验证(一)

23 阅读3分钟

(一)正则表达式的定义

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

package reg
/*
*  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{4}".r   //五个相邻的数字

      //1.匹配。在目标字符中,把符合正则表达式要求内容,找出来
    val source = "067891 one 2 two 3 4 5"
    reg.findAllIn(source).foreach(println)
    //2 验证。检查给定目标字符串,是否符合正则表达式的要求
    //reg.matches()
  }
}
package reg

/*
*  1.什么是正则表达式
*   正则表达式是一种用来匹配字符串的强大工具,它由普通字符(例如字符 a 到 z)和特殊字符(称为"元字符")组成
*  2.使用步骤
*    (1)定义一个正则表达式 "".r
*     (2)调用正则表达式的相关方法
*    (3)\d{4}表示
*
* 3.规则
*   (1) \d 表示一个数字
*    (2) \b表示便捷,空格,或者是最开始
*    (3)  \d{4} 表示四个数字 {n} 量词 ,让前面的规则重复n次
*    (4) [],表示其中任意一个字符,[3578]就是4个数组中的一个,[3-9]就是3456789中的某一个 [a-z]就是26个字母中的某一个
 */
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"

    reg.findAllIn(source).foreach(println)
    //2 验证。检查给定目标字符串,是否符合正则表达式的要求
    //reg.matches()
  }
}

1. 匹配一个数字。\d

2. 匹配两个数字。\d\d

3. 匹配11个数字。\d{11}

4. 匹配11个数字,并且以1开头。1\d{10}

5. 只能匹配11个数字,不能多也不能少。^1\d{10}$

6. 第2位可以是3,5,6,7,8,9。^1[356789]\d{9}$

package reg

/*
*  1.什么是正则表达式
*   正则表达式是一种用来匹配字符串的强大工具,它由普通字符(例如字符 a 到 z)和特殊字符(称为"元字符")组成
*  2.使用步骤
*    (1)定义一个正则表达式 "".r
*     (2)调用正则表达式的相关方法
*
* 3.规则
*   (1) \d 表示一个数字
*    (2) \b表示便捷,空格,或者是最开始
*    (3)  \d{4} 表示四个数字 {n} 量词 ,让前面的规则重复n次
*    (4) [],表示其中任意一个字符,[3578]就是4个数组中的一个,[3-9]就是3456789中的某一个 [a-z]就是26个字母中的某一个
*     (5)^表示开始
*     (6) 表示结束
 * */
object reg03 {
  def main(args: Array[String]): Unit = {
    //定义一个正则表达式
    val reg = "^1[3578]\d{9}".r     // 1的后面跟着3,5,7,8,后面再跟着9个相邻的数字

    println(reg.matches("13512345678"))
    println(reg.matches("12412345678"))
    println(reg.matches("15612345678"))
    println(reg.matches("15712345678"))
  }
}