当前位置: 首页 > 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.lryc.cn/news/499814.html

相关文章:

  • 【数电】常见时序逻辑电路设计和分析
  • Spring IOCAOP
  • Scala中的隐式转换
  • GESP 2024年12月认证 真题 及答案
  • C++多态性
  • PyODBC: Python 与数据库连接的桥梁
  • 专题二十五_动态规划_两个数组的 dp (含字符串数组)_算法专题详细总结
  • PHP语法学习(第七天)-循环语句,魔术常量
  • 数据库授权讲解一下
  • 组件开发的环境准备: nodejs安装,npm镜像源的修改,pnpm包管理器的安装(全局安装),基于pnpm创建脚手架项目
  • 学生成绩统计系统
  • 【Spring项目】图书管理系统
  • Vivado ILA数据导出MATLAB分析
  • 【开源免费】基于SpringBoot+Vue.JS高校学科竞赛平台(JAVA毕业设计)
  • 【机器学习】——windows下安装anaconda并在vscode上进行配置
  • 【H2O2|全栈】Node.js与MySQL连接
  • 汽配行业数字化解决方案(一)
  • 前端路径“@/“的使用和配置
  • 动态规划子序列问题系列一>最长递增子序列
  • 链表头文件大更新!!!
  • 力扣3381.长度可被K整除的子数组的最大元素和
  • http.ServeMux多路复用器的设置
  • 优化器与优化方法:在现代科学与工程中的应用
  • 笔记本外接显示屏没声音
  • vue框架
  • Vue指令(一)--v-html、v-show、v-if、v-else、v-else-if、v-on、v-bind、v-for、v-model
  • ElK 8 收集 MySQL 慢查询日志并通过 ElastAlert2 告警至飞书
  • QT通过在线安装器安装【详细】
  • 34.1 uber开源的m3db简介
  • MATLAB 最小二乘点云拟合球 (89)