是的,你可以简单地使用or (|)
到match
的pattern
之一,
scala> "hi" match { case "hello" | "hi" => println("fantastic") case _ => println("very very bad")}
fantastic
scala> "hello" match { case "hello" | "hi" => println("fantastic") case _ => println("very very bad")}
fantastic
scala> "something else" match { case "hello" | "hi" => println("fantastic") case _ => println("very very bad")}
very very bad
你也可以使用正则表达式进行模式匹配,当匹配的标准很多时特别有用,
scala> val startsWithHiOrHello = """hello.*|hi.*""".r
startsWithHiOrHello: scala.util.matching.Regex = hello.*|hi.*
scala> "hi there" match { case startsWithHiOrHello() => println("fantastic") case _ => println("very very bad")}
fantastic
scala> "hello there" match { case startsWithHiOrHello() => println("fantastic") case _ => println("very very bad")}
fantastic
scala> "non of hi or hello there" match { case startsWithHiOrHello() => println("fantastic") case _ => println("very very bad")}
very very bad
参考Scala multiple type pattern matching和Scala match case on regex directly
@JRR在这种情况下,正则表达式是更好的主意,而不是'或'。看到更新的例子。你基本上需要'嗨。* | hello。*'正则表达式 – prayagupd