我是scala的新手。我不是正则表达式的新手,但scala的正则表达式对我来说有点混乱。例如,我的输入变量是“DEVICE”列的字符串
我想将名称从上组转换为“TABLET”,从中组转换为“DESKTOP”,然后休息为“PHONE”,如下所示。最优雅的方式是什么?
"IOSTABLET" => "TABLET"
"ANDROIDTABLET" => "TABLET"
"TABLET" => "TABLET"
"SAFARI" => "DESKTOP"
...
这是我使用模式匹配的解决方案
val tablet = """.*(TABLET)$""".r
val phone = """.*(PHONE)$""".r
"IOSTABLET" match {
case tablet(device) => "TABLET"
case phone(device) => "PHONE"
case _ => "DESKTOP"
}
答案 0 :(得分:2)
val myDevice = "IOSTABLET"
val translated = myDevice match {
case "IOSTABLET" | "ANDROIDTABLET" | "TABLET" => "TABLET"
case "SAFARI" | "IE" => "DESKTOP"
case "etc" | "etc2" => "etc3"
}
这样的事情可能是最干净的方法。你可以使用正则表达式,但这里可能没有保证。