Scala中正则表达式习题

object p6 {
  def main(args: Array[String]): Unit = {
    //正则查找:全部的手机号
    // 规则:
    // 1.11位数字
    // 2.第一个数字是1
    // 3.第二个数字是3-9的数
    val reg1 = "1[3-9]\\d{9}".r
    reg1.findAllIn("13812345678 and 13987654321 0181234567 11812345678 are phone numbers").toList.foreach(println)


    //验证:给定的字符串是否符合正则表达式的要求
    // 用户名的规则
    // 1.长度在6-12位
    // 2.只能以字母开头
    // 3.只能包含字母,数字,下划线,#
    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("a1231231231232312"))

    //应用:替换
    //要求把手机号的4-7位换成xxxx
//    val reg3 = "1[3-9]\\d{9}".r
    val reg3 = "(1[3-9]\\d)(\\d{4})(\\d{4})".r
    val str="123 13812345678 and 13987654321 are phone numbers"
    val newStr=reg3.replaceAllIn(str,m =>{
//      println(m.group(1))
//      println(m.group(2))
//      println(m.group(3))
      m.group(1)+"xxxx"+m.group(3)
    })
    println(newStr)
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值