加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

直接在正则表达式上的Scala匹配案例

发布时间:2020-12-14 06:24:42 所属栏目:百科 来源:网络整理
导读:我想尝试做以下事情: list.foreach {x = x match { case """TEST: .*""" = println( "TEST" ) case """OXF.*""" = println("XXX") case _ = println("NO MATCHING") }} 这个想法是使用它像groovy switch case正则表达式匹配.但我似乎无法编译.什么是在scala
我想尝试做以下事情:
list.foreach {x => 
     x match {
       case """TEST: .*""" => println( "TEST" )
       case """OXF.*"""   => println("XXX")
       case _             => println("NO MATCHING")
     }
}

这个想法是使用它像groovy switch case正则表达式匹配.但我似乎无法编译.什么是在scala中正确的方法?

您可以匹配预编译的正则表达式(如下面的第一种情况),也可以添加if
条款.请注意,您通常不希望在每个案例评估中重新编译相同的正则表达式,而是将其放在对象上.
val list = List("Not a match","TEST: yes","OXFORD")
   val testRegex = """TEST: .*""".r
   list.foreach { x =>
     x match {
       case testRegex() => println( "TEST" )
       case s if s.matches("""OXF.*""") => println("XXX")
       case _ => println("NO MATCHING")
     }
   }

查看更多信息here和一些背景here.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读