Scala的正则表达式(2)

复制代码
package hfd
//任务:把字符串中的手机号打码  类似于:138****5678
//正则表达式的应用场景
//查找,验证,替换
object Test36_1 {
  def main(args: Array[String]): Unit = {
   val str= "张先生,手机号:13812345678 13612345454  寝室号:1345-01 你买的 xxx 到了 "
    //开始你的代码
    //138    1234  5678

    //()是分组,它不会影响正则表达式的查询结果,但是,它会把分组找到的内容单独保存在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(s"-" * 40)
      m.group(1) + "****" + m.group(3)
    })
    println(newStr)

    "张先生,手机号:138****5678 你买的 xxx 到了 "
  }

}
相关推荐
进击的雷神9 小时前
Perl语言深度考查:从文本处理到正则表达式的全面掌握
开发语言·后端·scala
进击的雷神9 小时前
Perl测试起步:从零到精通的完整指南
开发语言·后端·scala
旋风小飞棍3 天前
如何在sheel中运行spark
大数据·开发语言·scala
rylshe13144 天前
在scala中sparkSQL连接mysql并添加新数据
开发语言·mysql·scala
MZWeiei5 天前
Spark任务调度流程详解
大数据·分布式·spark·scala
бесплатно5 天前
Scala流程控制
开发语言·后端·scala
Bin Watson12 天前
解决 Builroot 系统编译 perl 编译报错问题
开发语言·scala·perl
什么芮.16 天前
大数据应用开发和项目实战(2)
大数据·pytorch·sql·spark·scala
不要天天开心17 天前
Spark-Streaming核心编程:有状态转化操作与DStream输出
scala
欧先生^_^18 天前
Scala语法基础
开发语言·后端·scala