【发布时间】:2016-10-06 10:12:10
【问题描述】:
我正在尝试(如果可能的话)获取一个 Scala 匹配/case 语句来为我执行内联正则表达式匹配。
具体来说,我有一个将运行match 的方法,如果该方法的输入以字符串“fizz”开头,那么我希望匹配语句选择正确的大小写:
def animalToSound(animal : String) : String = {
animal match {
case "duck" => "quack"
case "lion" => "roar"
case "dog" => "woof"
case matchesFizzRegex(animal) => "heyo!"
case _ => "meow"
}
}
def matchesFizzRegex(animal : String) : ??? = {
val fizzRegex = "fizz*".r
if(fizzRegex.match(animal)) {
???
} else {
???
}
}
所以如果我调用animalToSound("fizzBuzz"),那么期望的行为是:
- “fizzBuzz”是否等于“duck”?不,所以请尝试下一个案例。
- “fizzBuzz”是否等于“lion”?不,所以请尝试下一个案例。
- “fizzBuzz”是否等于“dog”?不,所以请尝试下一个案例。
- “fizzBuzz”是否匹配 fizz 正则表达式(任何以“fizz”开头的字符串)?是的,所以返回“嘿嘿!”
有什么办法可以让它正常工作吗?
【问题讨论】:
标签: regex scala string-matching