正则表达式的应用场景

// 任务:把字符串中的手机号打码:类似于:138****5678
// 正则表达式的应用场景
// 查找, 验证, 替换
object Test41 {
  def main(args: Array[String]): Unit = {
//    var str = "张先生,手机号:123812345678 13612345454 寝室号:1345-01 你买的 xxx 到了"
//    // 开始你的代码
//
    val reg = "1[3-9]\\d{9}".r
//    // () 是分组,它不会影响正则表达式的查询结果, 但是, 它会把分组找到的内容单独保存在group中。
//    val reg = "(1[3-9]\\d)(\\d{4})(\\d{4})".r
//    // reg.replaceAllIn的功能:在目标字符串str中, 用正则表达式reg去查找, 找到之后, 用 箭头函数 的返回值
//    // 来替换
//
//    // m 就是正则表达式找到的内容
//    // 如果正则表达式中有(), 则 可以通过m.group来找到对应的分组
//    val newStr = reg.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)
//    // "张先生,手机号:138****5678   你买的 xxx 到了"



    var str = "张先生, ID: 429005200001231156"
    val reg = "(\\d{10})(\\d{6})(\\d[\\dX])".r
//    val newStr = reg.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)
//    })
    val newStr = reg.replaceAllIn(str,m => m.group(1) + "------" + m.group(3))
    println(newStr)
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值