私はこの正規表現が一致するかどうかを知らずに、正規表現を使用して部分文字列(グループ)を抽出するにはどうすればよいですか?
val r = """^myprefix:(.*)""".r
val r(suffix) = line
println(suffix)
を使用したいしかし、それは文字列が一致しないエラーが発生します。マッチングがオプションの場合と同様の構文を使用するにはどうすればよいですか?
編集:あなたはパターンマッチングを経由してマッチグループを抽出することができ
scala> val rgx = """^myprefix:(.*)""".r
rgx: scala.util.matching.Regex = ^myprefix:(.*)
scala> val line = "myprefix:value"
line: java.lang.String = myprefix:value
scala> for (rgx(group) <- rgx.findFirstIn(line)) yield group
res0: Option[String] = Some(value)
正規表現が一致しない場合、空の文字列は何を返すべきですか? – Bergi
プログラムが終了しない限り、私は気にしません...また、 "含まれている"または類似している場合、それはちょうど短くてエレガントでなければなりません。 – Ixx