Scalaによる正規表現

正規表現の記述

Scalaで正規表現を扱うには scala.util.matching.Regex を使う。
正規表現は、以下のように記述できる

    val regex = """[Ss]cala""".r

ダブルクオートを3つ使用すると、正規表現中のバックスラッシュを2つ続けてエスケープすることなく記述することができる。
上記は冗長に書くと以下のように書ける。

    import scala.util.matching.Regxe
    val regex = new Regex("[Ss]cala")

先の例の.rは、RichStringにて定義されているメソッドで、暗黙的型変換にてRegxeクラスのインスタンスに変換される。

正規表現の利用例

正規表現は以下のように使用できる。

    val reg = """[Ss]cala""".r
    val str = "java Scala C scala"
    for(s <- reg findAllIn str) print(s + " ")

この例では、findAllInメソッドにて、文字列中に該当する Scala scala が出力される。
scala.util.matching.Regxeには、その他抽出用のメソッドが多数定義されている。