1.正则表达式的定义
-
正则表达式(Regular Expression)是一种用于匹配、查找和替换文本中特定模式的字符串
-
它的应用场景包括:
1.数据验证
2.文本搜索和替换
3.数据提取
2.第一个正则表达式的案例
-
要点:
-
在scala中,正则表达式就是在字符串的后面添加.r。
-
\是对\进行转义。\d是一个整体,用来表示一个整数。
-
-
正则表达式的使用步骤
1. 定义匹配规则。写正则表达式
2. 定义数据,准备要匹配的内容。
3. 将字符串使用规则进行匹配。
/**
* 1.什么是正则表达式
* 正则表达式是一种用来匹配字符串的强大工具,它由普通字符(例如字符a 到 z)和特殊字符(称为“元字符”)组成
*
* 2.使用步骤
* (1)定义一个正则表达式。 "".r
* (2)调用正则表达式的相关方法
*
* 3.规则
* (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 soure = "67891 one 2105 two 3 4 5"
reg.findAllIn(soure).foreach(println)
//2.验证。检查给定目标字符串,是否符合正则表达式的要求
//reg.matches()
}
}
3.匹配合法手机号
object reg02 {
def main(args: Array[String]): Unit = {
//定义一个正则表达式
val reg = "\b1[3578]\d{9}".r //1的后面跟着10个相邻的数字
//1.匹配。在目标字符中,把符合正则表达式要求内容,拔出来
val soure = "13674847578 15368675848 17384784947 10374674847 429005200609183675"
reg.findAllIn(soure).foreach(println)
}
}
4.基本组成部分
/**
*
* 目标:在给定的字符串中,匹配出合法的手机号
* 1.有11个连续的数字
* 2.手机号以1开头
*
*
*
* 3.规则
* (1)\d 表示一个数字
* (2)\b表示边界。空格,或者是最开始
* (3)\d{4} 表示四个数字 {n} 量词。让前面的规则重复n次
* (4)[]。表示其中任意一个字符。[3578]就是四个数字中的一个
* (5)^ 表示开始
* (6)$ 表示结束
*
*/
object reg03 {
def main(args: Array[String]): Unit = {
//定义一个正则表达式
val reg = "^1[3578]\d{9}$".r //1的后面跟着10个相邻的数字
println(reg.matches("13674847578"))
println(reg.matches("15368675848"))
println(reg.matches("17384784947"))
println(reg.matches("10374674847"))
}
}