Scala中的正则表达式(一)

1 阅读2分钟

正则表达式的定义

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

它就像是一种文本模式的“配方”,可以让计算机根据这个“配方”在文本中找到符合要求的内容。

正则表达式的使用基本方式

object reg1 {
  def main(args: Array[String]): Unit = {
    // 1. 定义一个正则表达式
    val reg = "apple".r  // 在字符串的后边加.r

    // 2. 调用它的方法 findFirstIn. 找到第一个匹配成功的结果

    val rel = reg.findFirstIn("I like orange")

    // 3. 输出结果
    if(rel.isDefined){
      println(rel.get)
    } else{
      println("没有匹配任何内容")
    }
  }
}

【总结正则表达式的使用步骤】 1. 定义匹配规则。写正则表达式

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

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

常见规则

能匹配单个字符的规则

image.png

能匹配很多规则的字符

image.png

  • \d 的应用
object reg2 {
  def main(args: Array[String]): Unit = {
    // 1. 定义一个正则表达式
    val reg = "\d{11}".r  // 在字符串的后边加.r
    // \d: 匹配一个数字
    // {11}: 表示前面的内容要匹配11次

    // 2. 调用它的方法 findFirstIn. 找到第一个匹配成功的结果

    // val rel = reg.findFirstIn("123ab4,5")

    reg.findAllIn("我的手机号码是13995634246,请你记住. 17438284532").foreach(println)
  }
}
  • \w、^、 $的应用
object reg3 {
  def main(args: Array[String]): Unit = {
    // 验证合法的密码:只能由字母,数字,下划线构成,长度在6~10之间。

    val reg = "^\w{6,10}$".r  // 在字符串的后边加.r
    // \w: 能匹配一个特殊的字符。 _ 、数字、小写字母、大写字母 中的某一个
    // {6,10} 表示:这样的字符至少有6个,最多10个
    // ^: 表示以此为开始
    // $: 表示以此结尾


    // 2. 调用它的方法 findFirstIn. 找到第一个匹配成功的结果
    val rel = reg.findFirstIn("abc1234567890")

    // 输出结果
    if(rel.isDefined){
      println("是一个合法的密码")
    } else {
      println("不是一个合法的密码")
    }
  }
}