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}".rval reg1="(1[3-9]\\d)(\\d{3})(\\d{5})".rval 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:正则表达式
2025/2/12 12:08:22
来源:https://blog.csdn.net/2402_87106544/article/details/144216495
浏览:
次
关键词:Scala:正则表达式
版权声明:
本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com
热文排行
- 《警世贤文》摘抄:处人篇、受恩篇、宽人篇、听劝篇、劝善篇(多读书、多看报、少吃零食多睡觉)
- Vmess协议是什么意思? VLESS与VMess有什么区别?
- Android显示系统(08)- OpenGL ES - 图片拉伸
- `git restore` 和 `git checkout` 用于丢弃工作区的改动, `git switch` 和 `git checkout` 用来切换分支
- nccl 03 记 回顾:从下载,编译到调试 nccl-test
- 【CVE-2024-38077】核弹级Windows RCE漏洞如何自检并修复该漏洞(附批量漏洞检测工具及分析伪代码)
- windows11 ,ubuntu20.04双系统,ubuntu没有wifi的解决方式
- 【HW必备】用友NC-Cloud存在17处漏洞合集
- AD24设计步骤
- ctfshow-web入门-php特性(web132-web136)