Scala 字符串匹配

正则匹配

判断是否匹配

1
2
3
// <string>.matches(<regex_str>)
if("123".matches("""\d+""")) println("yes")
if("t0".matches("""\w+""")) println("yes")

提取子表达式

1
2
3
4
5
6
7
8
9
10
import scala.util.matching._
val pattern = """(\w+) = (\w+);""".r
//pattern必须全部cover住被匹配的字符串
//1.
val pattern(a, b) = "shit = game;" // val a = shit; val b = game
//2. no exception
"shit = game" match {
case pattern(a, b) => ...
case _ => println("no matches")
}