- 什么是正则表达式正则表达式
- 是一种用来匹配字符串的强大工具,它由普通字符(例如字符 a 到 z)和特殊字符(称为 “元字符”)组成。
- 使用步骤
- (1)定义一个正则表达式: ".*".r
- (2)调用正则表达式的相关方法
- 规则
- (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 source = "67891 one 2105 two 3 4 5"
reg.findAllIn(source).foreach(println)
// 2. 验证:检查给定目标字符串,是否符合正则表达式的要求。
// reg.matches()
}
}
目标:在给定字符串中,匹配出合法的手机号
- 有 11 个连续的数字
- 手机号以 1 开头
- 手机号的第 2 位:必须是 3578 中的某一个
- 规则
- (1)\d 表示一个数字
- (2)\b 表示边界、空格,或者是开始
- (3)\d {10} 表示 10 个数字,{n} 是让前面的规则重复 n 次。
- (4)[],表示匹配任意一个字符。[3578] 就是 4 个数字中的一个 [3-9] 就是 3456789 中的某一个 [a-z] 就是 26 个字母中的某一个
- (5)^表示开始
- (6)$表示结束
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, 17912345678, 429005198406110045"
reg.findAllIn(source).foreach(println)
}
}
object reg03 {
def main(args: Array[String]): Unit = {
// 定义一个正则表达式
val reg = "^1[3578]\d{9}$".r // /1的后面跟着3,5,7,8,后面再跟9个相邻的数字
// 1. 匹配:在目标字符串中,把符合正则表达式要求内容,找出来。
println(reg.matches("13612345678")) //
println(reg.matches("12612345679")) //
println(reg.matches("1361234567")) //
println(reg.matches("136123456791")) //
}
}