環境:Scala version 2.10.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_45).
これは動く
import scala.util.matching.Regex
import Regex._
val s = "hoge:1000\tfuga:2000"
val reg = new Regex(""":([0-9]{4})""", "i")
val f: Match => String = { m =>
val l = m.group("i").toInt * 1000
s"piyo:$l"
}
reg.replaceAllIn(s , f).replace("piyo", "$piyo")
これはだめ
import scala.util.matching.Regex
import Regex._
val s = "hoge:1000\tfuga:2000"
val reg = new Regex(""":([0-9]{4})""", "i")
val f: Match => String = { m =>
val l = m.group("i").toInt * 1000
s"$$piyo:$l" // s"\\$$piyo:$l" こうする
}
reg.replaceAllIn(s , f)