0
如何进行模式匹配以匹配所有元素直到最后一个元素?Scala:字符串开头的模式匹配零或更多
例如,假设我有这样的unapplySeq:
object MyObject {
def unapplySeq(money: String): Option[List[Char]] = {
val amount = money.trim.toList
if (amount.isEmpty) None
else
Some(amount)
}
}
我尝试以下匹配:
"12.15 €" match {
case MyObject('$' , last @ _*) => s"${last.mkString} dollars"
// this is wrong
case MyObject(first @ _*, '€') => s"${last.mkString} euro"
case _ => "Unknown format"
}
我能为美国达在那里我通过例如120.10 $做到这一点,但我如何重写第二种情况以匹配符号在最后的欧元字符串?
谢谢。我想过正则表达式,可能会朝着这个方向发展。然而,似乎任何人认为实施以前的方法会被鸟或松鼠等分散注意力,并且没有考虑实施其他常见变化。我试图确保我没有错过我发布的非正则表达式方法。 – 2015-02-06 23:20:10