takafumi blog

日々の勉強メモ

【Scala】 正規表現のパターンマッチ

環境   Scala 2.11.6 CentOS7.0

パターンマッチに正規表現を使える。
グルーピングしている部分にマッチする。

scala>   val r = """^(\d{4})-(\d{2})-(\d{2})$""".r
r: scala.util.matching.Regex = ^(\d{4})-(\d{2})-(\d{2})$

scala>   "2015-08-19" match {
     |     case r(year, month, day) => {
     |       Some(year + "/" + month + "/" + day)
     |     }
     |     case s => None
     |   }
res1: Option[String] = Some(2015/08/19)

scala>

scala>   "2015-8-19" match {
     |     case r(year, month, day) => {
     |       Some(year + "/" + month + "/" + day)
     |     }
     |     case s => None
     |   }
res2: Option[String] = None