私は文字列を持っておりvar str = "hello, world"
、List
パターンRegex
の
val patterns = List(new Regex("hello, (.*)", "substr"), new Regex("hi, (.*)", "substr"))
str
これらのパターンに対してどのように一致させることができますか? List
パターンを使用する代わりに、次のことを行っています。
val pattern1 = new Regex("hello, (.*)", "substr")
val pattern2 = new Regex("hi, (.*)", "substr")
var someVar = "something"
var someVar2 = "something else"
str match {
case pattern1(substr) => { someVar = substr; someVar2 = "someValue" }
case pattern2(substr) => { someVar = substr; someVar2 = "someOtherValue" }
}
付録:
重要なことを 1 つ言い忘れていました。実際には、パターンのリストがいくつかあります。someVar2 は、最初のパターン一致が発生したリストに応じて値を取得します。のようなネストされたリストを使用するか、のようなパターンのリストごとにList(List(new Regex(...), new Regex(...), ...), List(new Regex(...), new Regex(...), ...))
個別に使用するかは、私にとっては問題ではありません。val
val patterns1 = List(new Regex(...), ...); val patterns2 = List(new Regex(...), ...)