正则表达式的代码表现式

//8.英文的.:表示除了换行之外的其他的任意字符

    //9.\d:表示0-9的一个数字

    //10.\D:表示 除\d 之外的字符

    //11. \w:[a-zA-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次

    //贪婪模式

    //正则匹配默认是贪婪模式的

    //16 ? 非贪婪模式。 加在量词的后面

    //在如下字符串中 查找 满足正则表达式要求的内容

    //val str ="i am abc"

    // LA 找到一个满足条件的

    // 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("13812345678 and 13987654321 01812345678 11812345678 are phone numbers").toList.foreach(println)

 

    // B 验证: 给定的字符串是否符合正则表达式的要求

    //用户名的规则

    //1. 长度在6-12位

    //2. 只能以字母开头

    //3. 只能包含如下4种: 字母, 数字, 下划线 #

    //规则分析:合法用户1名通常允许包含大小写字母(a-z,A-Z),数字(0-9)以及下划线(_),用户名长度一般限定在3到20位之间,且不能以数字开头。

// val name1 ="_56!!!@@@.com"//不符合

// val name2 ="abc"

// val name3 ="admin123#"

// val reg2 = "[a-zA-Z0-9_#]{6,12}".r

// //matches: 验证字符串是否满足

// println(reg2.matches(name1))

// println(reg2.matches(name2))

// println(reg2.matches(name3))

    //println(reg2.matches("a1231231313131313"))

    // C 应用: 替换

    //要求把手机号的4-7位换成xxxx(打上马赛克)

    //(136) (1234) (5678)

    //val reg1 ="1[3-9]\\d{9}".r

    val reg1 = "(1[3-9]\\d)(\\d{3})(\\d{5})".r

    val str = "123 13812345678 and 13987654321 01812345678 11812345678 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)

  }

 

 

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值