私は文字列を持っており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(...), ...))個別に使用するかは、私にとっては問題ではありません。valval patterns1 = List(new Regex(...), ...); val patterns2 = List(new Regex(...), ...)