object test03 {
//正则表达式
def main(args: Array[String]): Unit = {
//定义一个正则表达式
//1.[ab]:表示匹配一个字符,或者是a,或者是b
//2.[a-z]:表示从a到z的26个字母中的任意一个
//3.[A-Z]:表示从A到Z的26个字母中的任意一个
//4.[0-9]:表示从0到9的10个数字中的任意一个
//4.1[^ab]:表示匹配一个字符,除a,b之外的
//5.[11]:表示前面的字符能出现11次
// val reg1="[0-9]{11}".r
// val reg1="[ab]".r
// val reg1="a.c".r
// val reg1="\\d".r
// val reg1="\\d{3,6}".r //贪婪模式
// val reg1="\\d{3,6}?".r //非贪婪模式
//6.脱字符 ^ 如果在正则的最前面,表示,要匹配的内容必须在字符串的开头
//7.脱字符 $ 如果在正则的最后边,表示,要匹配的内容必须在字符串的结尾
//8.英文的 .:表示除了换行之外的其他的任意一个字符
//9. \d:表示 0-9 的一个数字
//10. \D:表示 除了 \d之外 的字符
//11. \w:表示[a-zAz-Z0-9_] 63个字符中任意一个,”一个字“
//12. \W:表示 除了 \w之外 的字符
//13. \s:表示空格
//14: \S:表示 除了 \s之外 的字符
//15. 量词
//15.1 *: 表示 >=0
//15.2 +: 表示 >=1
//15.3 ?: 表示 0次或1次
//15.4 {11}: 表示 恰好11次
//15.5 {3,5}: 表示 至少3次,最多5次
//15.6 {3,}: 表示 至少3次,最多不限
//贪婪模式
//正则匹配默认是贪婪模式的
//16. ? 非贪婪模式,加在量词后面
//在如下字符串中 查找 满足正则表达式要求的内容
// val str ="i am abc"
//找到第一个满足条件的
// val rs=reg1.findFirstIn("i am abc abc")
// if (!rs.isEmpty){
// println("找到的是:",rs.get)
// }
//找全部的
// reg1.findAllIn("13612343314").toList.foreach(println)
// reg1.findAllIn("i am abc abc").toList.foreach(println)
// reg1.findAllIn("i am abc a!c a!!c").toList.foreach(println)
// reg1.findAllIn("i am abc a!c a!!c 1 2 3").toList.foreach(println)
// reg1.findAllIn("136123456781").toList.foreach(println) //贪婪
// reg1.findAllIn("136123456781").toList.foreach(println) //非贪婪
//正则查找
//找全部的手机号
//规则:
//1.11位数字
//2.第一个数字是1
//3.第二个数字是3—9的数
// val reg1 = "1[3-9]\\d{9}".r
// reg1.findAllIn("136123456781 and 13838765432 01812345678 1181212345678 are phone numbers").toList.foreach(println) //正则查找
//验证: 给定字符串是否符合正则表达式的要求
//用户名的规则
//1. 长度在 6-12 位
//2. 只能以字母开头
//3. 只能包含如下4种:字母,数字,下划线,#
val name1="_56!!@@@.com"//不符合
val name2="abc"//不符合
val name3="admin123#"
val reg2="[a-zA-Z][a-zA-Z0-9_#]{5,11}".r
//matches: 验证字符串是否满足
println(reg2.matches(name1))
println(reg2.matches(name2))
println(reg2.matches(name3))
println(reg2.matches("a12312313131313131313"))
//应用:替换
//要求把手机号的4-7位换成xxx
//(136) (1234) (5678)
// val reg1="1[3-9]\\d{9}".r
val reg1="(1[3-9]\\d)(\\d{3})(\\d{5})".r
val str="13812345678 and 13987654321 are phone numbers"
val newStr=reg1.replaceAllIn(str,m=>{
// println(m.group(1))
// println(m.group(2))
// println(m.group(3))
m.group(1) + "###" + m.group(3)
})
println(newStr)
}
}
Scala:正则表达式
南鸳6102024-12-07 15:14
相关推荐
Kisorge几秒前
【C语言】指针数组、数组指针、函数指针、指针函数、函数指针数组、回调函数轻口味1 小时前
命名空间与模块化概述WTT00112 小时前
2024楚慧杯WP晓纪同学2 小时前
QT-简单视觉框架代码威桑2 小时前
Qt SizePolicy详解:minimum 与 minimumExpanding 的区别飞飞-躺着更舒服2 小时前
【QT】实现电子飞行显示器(简易版)明月看潮生2 小时前
青少年编程与数学 02-004 Go语言Web编程 16课题、并发编程明月看潮生2 小时前
青少年编程与数学 02-004 Go语言Web编程 17课题、静态文件Java Fans2 小时前
C# 中串口读取问题及解决方案盛派网络小助手2 小时前
微信 SDK 更新 Sample,NCF 文档和模板更新,更多更新日志,欢迎解锁