当前位置: 首页 > news >正文

Scala:正则表达式

ea6ca0aab6874e4f98e293e8c4542dc0.png

1f7a5d15663c41c297a51a4ae5dc196f.png

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)}
}


http://www.mrgr.cn/news/79113.html

相关文章:

  • 【Navicat】设置字段根据当前时间更新
  • 计算机的错误计算(二百二十二)
  • element表格有横向滚动条时产生错位或者偏移(火狐浏览器)
  • 书生大模型基础岛第四关
  • Mac 删除ABC 输入法
  • Grails应用http.server.requests指标数据采集问题排查及解决
  • Transformers在计算机视觉领域中的应用【第3篇:Swin Transformer——多层次的Vision Transformer】
  • 快速上手 RabbitMQ:使用 Docker 轻松搭建消息队列系统
  • JS中的浅拷贝,深拷贝和引用
  • 【JuMP.jl】非线性规划
  • 项目开发之Jenkins
  • React第十二节组件之间通讯之发布订阅模式(使用pubsub-js插件)
  • FFmpeg:强大的音视频处理工具指南
  • 鸿蒙 Next 可兼容运行 Android App,还支持出海 GMS?
  • 每日速记10道java面试题13
  • 365天深度学习训练营-第P7周:马铃薯病害识别(VGG-16复现)
  • 知乎大数据开发面试题及参考答案
  • AI大模型原理
  • 重生之我在异世界学编程之C语言:选择结构与循环结构篇
  • 使用 libssh2_session_set_timeout 设置 SSH 会话超时时间
  • Unity 基于Collider 组件在3D 物体表面放置3D 物体
  • 中国矿业大学《2024年868自动控制原理真题》 (完整版)
  • 显卡(Graphics Processing Unit,GPU)比特币挖矿
  • 926[study]Docker,DHCP
  • @Component 详解
  • 单例模式实现axios的封装(TS版本)