Scala学习第十九天 正则表达式、与模式匹配结合的的Reg代码实战

本文介绍Scala中的模式匹配技术,并通过具体示例展示如何使用模式匹配简化正则表达式的应用。通过生成特定的正则表达式,文章演示了如何进行字符串的匹配、查找及数据清洗等工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模式匹配在scala中是非常重要的内容,这讲将从正则表达式的角度上,通过模式匹配简化正则表达式的代码。正则表达式在所有开发中都很重要,它描述了一种规则,可以适用很多实例的匹配、过滤,可用于数据清洗,在大数据中有重要的etl步骤,也可以把正则表达式当作是对数据的etl

object RegExpOps {  
//生成正则表达式,表达式内容有两部分构成:有若干数字,有若干小写字母。  
        val regex = """([0-9]+) ([a-z]+)""".r  
        //正则表达式,匹配若干数字       
        val numPattern = "[0-9]+".r 
       //正则表达式,匹配若干数字前面后面可以添加任意内容。 
        val numberPattern = """\s+[0-9]+\s+""".r 

        //findAllIn方法返回编译所有匹配的迭代器  
        for(matchString <- numberPattern.findAllIn("99345 Scala, 22298 Spark")) println(matchString)  
      //将所有匹配的选项赋值给matchStirng,去打印出来

        //找到首个匹配项  
        println(numberPattern.findFirstIn("99ss java, 222 hadoop"))  

        val numitemPattern = """([0-9]+) ([a-z]+)""".r  
        val numitemPattern(num, item) = "99 hadoop" 
        /*这里有个模式匹配,右侧是字符串,数字赋给num,
        小写字母赋给item*/ 

        val line = "93459 spark"  
        /**  
         * 模式匹配  
         */  
        line match { //line做输入字符串 
          case numitemPattern(num, blog) => println(num + "\t" + blog)  
         /*去和numitemPattern匹配,数字赋给num,
         小写字母传给blog,并打印出来*/ 
          case _ => println("That's all")  
        }  

    }  
}  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值