正则表达式的定义
正则表达式(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 是否满足正则表达式的要求?
}
}