正则表达式
object Test51 {
//正则表达式
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到10中的任意一个
//4.1[^ab]:表示匹配一个字符,除a,b之外的
//5.{11}:表示前面的字符能出现11次
//val reg1="[0-9]{11}$".r
//val reg1="\\S".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.1 *:表示前面的规则>=0次
//15.2+:表示前面的规则>=1次
//15.3?:表示0次或者1次
//15.4{11}恰好11次
//15.5{3,5}至少3次,最多5次
//15.6{3,}至少3次,最多不限
//16? 非贪婪模式 加在量词的后面 尽可能少匹配
//17.-^ 匹配首航
//18.-$ 匹配尾行
//贪婪模式
//正则匹配默认是贪婪模式的
//在如下字符串中 查找 满足正则表达式要求的内容
//val str="i am abc"
// //找到第一个满足条件的
// val rs=reg1.findFirstMatchIn("i am abc abc")
// if(!rs.isEmpty){
// println("找到的是:",rs.get)
// }
//正则查找:找全部的手机号
//规则:
//1.11位数字,
//2.第一个数字是1.
//3.第二个数字是3-9的数
// val reg1="1[3-9]\\d{9}".r
// reg1.findAllIn("2342354 and 123424235 13543456566 are phone numders").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("a132332323123123"))
//应用:替换
val reg1="(1[3-9]\\d)(\\d{3})(\\d{5})".r
val str="1234 12313214125 and 123124443 are phone numbers"
val newStr=reg1.replaceAllIn(str,m =>{
println(m.group(1))
println(m.group(2))
println(m.group(3))
m.group(1)+"xxxx"+m.group(3)
})
println(newStr)
}
}
原文地址:https://blog.csdn.net/2301_81908848/article/details/144217332
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!