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

前端之家收集整理的这篇文章主要介绍了直接在正则表达式上的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.

猜你在找的正则表达式相关文章