境外建网站,企业文化管理咨询,冬季去黄山旅游攻略,软文范例大全一、定义#xff1a;正则表达式是一种用于匹配、查找和替换文本中特定模式的字符串。
使用方式#xff1a;①定义一个正则
正则表达式应用场景#xff1a;查找、验证、替换。
Ⅰ、查找
在目标字符串中#xff0c;找到符合正则表达式规则要求的 子串。
方括号#xff…一、定义正则表达式是一种用于匹配、查找和替换文本中特定模式的字符串。
使用方式①定义一个正则
正则表达式应用场景查找、验证、替换。
Ⅰ、查找
在目标字符串中找到符合正则表达式规则要求的 子串。
方括号
package test36object test {def main(args: Array[String]): Unit {val reg[abc].r
// val rsreg.findFirstIn(abc a)
// if (!rs.isEmpty){
// println(你找到的符合正则表达式要求的内容是,rs.get)
// }reg.findAllIn(abc abc).toList.foreach(println)}
}.表示除了换行之外的其他的任意单个字符\d等于【0-9】匹配一个数字 digit\D除了\d之外的其他的任意字符。表示非数字\w等价于【0-9A-Za-z_】63个字符表示一个字 word\W除了\w之外的任意字符。表示非字\s表示一个空格 space\S表示一个非空格
package test36
object test {def main(args: Array[String]): Unit {
// val reg[abc].r
// val rega$.r
// val reg..r
//val reg\\d\\d\\d.r
//val reg\\D.r
// val reg\\w.r
// val reg\\W.r
// val reg\\s.rval reg\\S.r
// val rsreg.findFirstIn(abc a)
// if (!rs.isEmpty){
// println(你找到的符合正则表达式要求的内容是,rs.get)
// }reg.findAllIn(_Ai 1234am a12 no studengt, ok,y3es,no,ok).toList.foreach(println)}
}Ⅱ、量词
量词查找 {n,m}把前面的字符匹配最少n次最多m次{n, }把前面的字符匹配最少n次最多不限{n}把前面的字符匹配n次{0,1}把前面的字符匹配0次或者1次{1, }把前面的字符匹配最少1次*{0}把前面的字符匹配0次。或者多次 package test36object test {def main(args: Array[String]): Unit {
//规则1.有11个数字//规则2开头是1//规则3第二位是3-9的数字var reg1[3-9]\\d{9}.rreg.findAllIn(01234567890 13a12345678 13812345678 and 10987654321 are phone numbers).toList.foreach(println)}
}
练习一验证合法的用户名
package test37
//验证用户名是否合法
//规则
//2.不能数字开头
//3.只能包含数字大小写字母下划线
object test {def main(args: Array[String]): Unit {val name11shenxinghui//不合法是数字开头的。val name2lishen123//合法val name3qy//不合法长度不够val name4xyz_123Ai//合法val name5waqc1314!//不合法是不允许的//通过正则表达式来判断val reg[a-zA-Z_]\\w{6,12}.rprintln(reg.matches(name1))//matches对字符串做验证返回boolean值println(reg.matches(name2))//matches对字符串做验证返回boolean值println(reg.matches(name3))//matches对字符串做验证返回boolean值println(reg.matches(name4))//matches对字符串做验证返回boolean值println(reg.matches(name5))//matches对字符串做验证返回boolean值}
}练习二隐藏手机号中间4位
package test37
//任务把字符串中的手机号打码类似138****5678object test2 {def main(args: Array[String]): Unit {var str沈星回手机号13812345678 13612345454 寝室号1234-01 你买的xxx到了//开始你的代码//是分组它不会影响正则表达式的查询结果但是它会把分组找到的内容单独保存在group中val reg(1[3-9]\\d)(\\d{4})(\\d{4}).r//reg.replaceAllIn的功能在目标字符串str中用正则表达式reg去查找找到之后用 箭头函数 的返回值来替换//m 就是正则表达式找到的内容//如果正则表达式中有则 可以通过m.group来找到对应的分组val newStrreg.replaceAllIn(str,(m){println(s第一组${m.group(1)})println(s第一组${m.group(2)})println(s第一组${m.group(3)})println(_*40)m.group(1)****m.group(3)})println(newStr)}
}