package Scala12_3
//正则表达式
object Scala12_03 {
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 = "\\w".r
// 6.脱字符^如果在正则的最前面,表示,要匹配的内容必须在字符串的开头
// 7.脱字符$如果在正则的最后面,表示,要匹配的内容必须在字符串的结尾
// 8.英文的 . :表示除了换行之外的其他任意一个字符
// 9.\d:表示0-9的一个数字
// 10.\D:表示除d之外的字符
// 11.\w:[a-zA-Z0-9_]63个字符中任意一个
// 12.\W:除[a-zA-Z0-9_]63个字符中不是字符的任意一个
// 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 reg1 = "abc".r
// 在如下字符串中 查找 满足正则表达式要求的内容
// val str = "i am abc"
// val rs = reg1.findFirstIn("i am abc")
// if(!rs.isEmpty){
// println("找到的是:",rs.get)
// }
// 找到全部
// 找全部的手机号
// 规则:
// 1. 11位数字
// 2.第一个数字是1
// 3.第二位数字是3-9的数
//val reg1 = "1[3-9]\\d{9}".r
// reg1.findAllIn("1361272342333 hgef:14334565761,邮编:433100 sfgsd _osdgbj;asdf").toList.foreach(println)
// 验证:给定的字符串是否符合正则表达式的要求
// 用户名的规则
// 1.长度在6-12位
// 2.只能以字母开头
// 3.只能包含4种字母,数字,下划线,#
// val name1 = "_354!!@@.com"
// val name2 = "abc"
// val name3 = "adimn123#"
// val reg2 = "[a-zA-Z][a-zA-Z0-9_#]{5,11}".r
// println(reg2.matches(name1))
// println(reg2.matches(name2))
// println(reg2.matches(name3))
// println(reg2.matches("a24235235234253fhhgkdfshsjarewgo;jasjkdgp3oio1234ryweqpt9eg"))
//
// val reg1 = "(1[3-9]\\d)(\\d{3})(\\d{5})".r
// val str = "13612723423 hgef:14334565761,邮编:433100 sfgsd _osdgbj;asdf"
// val newStr = reg1.replaceAllIn(str,m =>{
// m.group(1) +"###" +m.group(3)
// })
// println(newStr)
// reg1.findAllIn("1361272342333 hgef:14334565761,邮编:433100 sfgsd _osdgbj;asdf").toList.foreach(println)
val reg1 = "(4[2-9]\\d{4})(\\d{8})(\\d{4})".r
val str = "13612723423 hgef:14334565761,邮编:433100 sfgsd _osdgbj;asdf,420321492923994478"
val newStr = reg1.replaceAllIn(str, m => {
m.group(1) + m.group(2)+ "####"
})
println(newStr)
}
}
在Scala中正则表达式的类型
小萌新~~~~2024-12-15 1:10
相关推荐
FQNmxDG4S34 分钟前
Java泛型编程:类型擦除与泛型方法的应用场景我星期八休息1 小时前
IT疑难杂症诊疗室:AI时代工程师Superpowers进化论热心网友俣先生1 小时前
2026年第二十三届五一数学建模竞赛C题超详细解题思路+各问题可用模型推荐+部分模型结果展示01漫游者1 小时前
JavaScript函数与对象增强知识IGAn CTOU1 小时前
Java高级开发进阶教程之系列csbysj20201 小时前
SQL NULL 函数详解其实防守也摸鱼1 小时前
CTF密码学综合教学指南--第三章NGSI vimp1 小时前
Java进阶——如何查看Java字节码We་ct2 小时前
深度剖析浏览器跨域问题skywalk81632 小时前
在考虑双轨制,即在中文语法的基础上,加上数学公式的支持,这样像很多计算将更加简单方便,就像现在的小学数学课本里面一样,比如:定x=2*x + 1