elm*_*elm 5 arrays string scala pattern-matching
如何使用正则表达式对数组中的第一个字符串元素进行模式匹配?
例如,考虑一下
Array("col",1) match {
case Array("""col | row""", n, _*) => n
case _ => 0
}
Run Code Online (Sandbox Code Playgroud)
0
虽然期望的结果是1,但它可以提供.
非常感谢.
甲Regex
实例自动提供提取器,这样就可以在一个模式匹配表达式直接使用一个:
val regex = "col|row".r
Array("col",1) match {
case Array(regex(), n, _*) => n
case _ => 0
}
Run Code Online (Sandbox Code Playgroud)
另外:在Scala中关于regexp的更一般的QA中,sschaef 为模式匹配使用提供了非常好的字符串插值(例如r"col|row"
在本例中).一个潜在的警告:插值会Regex
在每次调用时创建一个新的实例 - 因此,如果您多次使用相同的正则表达式,则将其存储在一个相反的位置(如此答案中)可能更有效val
.
归档时间: |
|
查看次数: |
820 次 |
最近记录: |