scala中的正则表达式

25 阅读2分钟

正则表达式的定义

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

它是一种强大的文本处理工具,通过定义一系列的字符和操作符组合来描述这些模式。简单来说,它就像是一种文本模式的“配方”,可以让计算机根据这个“配方”在文本中找到符合要求的内容。

基本组成部分

  • 字符类
  • 量词
  • 锚点
  • 分组 电话号
object reg02 {
  // 使用步骤
  // 1.定义一个正则表达式  "".r 2.调用正则表达式的相关方法
  def main(args: Array[String]): Unit = {
    // 定义一个正则表达式
   // val reg = "abc".r
    val reg = "\b1[3578]\d{9}".r
    // 匹配 在目标字符中 把符合正则表达式要求内容 找出来
    //val source = "abc in abc"
    val source = "13457894321 15689421832 1648939421, 17949385432,14578928218,1794946637"
    reg.findAllIn(source).foreach(println)


  }

}

/**
 * 目标:在给定字符串中,匹配出合法的手机号
 * 1、有11个连续的数字
 * 2、手机号以1开头
 * 3、手机号的第2位,必须是3578中的某一个
 *
 * 3、规则
 * (1)\d 表示一个数字
 * (2)\b 表示边界,空格,或者是开始。
 * (3)\d{n} 表示有n个字符 {n} 量词,让前面的规则重复n次。
 * (4)[a-z] 表示一个字符,[3578] 就是4个数字中的一个 [-3-9]就是3456789中的某一个 [a-z]就是26个字母中的某一个
 * (5)^ 表示开始
 * (6)$ 表示结束
 */
object main03 {
  def main(args: Array[String]): Unit = {
    // 定义一个正则表达式
    val reg = "^1[3578]\d{9}$" // 1的后面跟着3,5,7,8,后面再跟着9个相邻的数字
    println(reg.matches("1a912345678")) // 检查 1a912345678 是否满足正则表达式的要求?
    println(reg.matches("13612345678")) // 检查 13612345678 是否满足正则表达式的要求?
    println(reg.matches("136123456797")) // 检查 13912345678 是否满足正则表达式的要求?
  }
}