Scala的正则表达式

35 阅读1分钟

正则表达式

字符类:包括单个字符和字符范围。例如:

-   "a"匹配字符"a"
-   "[abc]"匹配"a""b"或者"c"中的任意一个字符
-   "[a-z]"匹配从"a""z"的任意一个小写字母

量词:用于指定前面的字符或字符组出现的次数。

  • "*"表示前面的字符可以出现0次或多次
  • "+"表示前面的字符至少出现1次
  • "?"表示前面的字符最多出现1次

锚点:用于指定匹配的位置

  • "^"表示匹配行首
  • "$"表示匹配行尾
  • "^abc"表示匹配以"abc"开头的行
  • "abc$"表示匹配以"abc"结尾的行

分组:使用括号"()"来分组

  • "(ab)+"表示"ab"这个组合至少出现1次
  • 分组还可以用于提取匹配的子字符串等操作
def main(args: Array[String]): Unit = {
  val reg ="\b1[3589]\d{9}".r
  val source="13694832445 13456788765"

  reg.findAllIn(source).foreach(println)

}
val reg ="^1[3589]\d{9}$".r
println(reg.matches("13512345678"))
println(reg.matches("135123456789"))