与Scala中的正则表达式匹配的模式

Cor*_*ped 0 regex scala pattern-matching

为什么这不起作用?

val isGovt = """Govt .*""".r
val Govt = "Govt 23 foobar"
Govt match {
    case isGovt(_) => println("match works")
    case _ => print("nope. doesn't work")
}
Run Code Online (Sandbox Code Playgroud)

它打印'不.不起作用'.我究竟做错了什么?

Rég*_*les 6

更改

val isGovt = """Govt .*""".r
Run Code Online (Sandbox Code Playgroud)

val isGovt = """(Govt .*)""".r
Run Code Online (Sandbox Code Playgroud)

当您使用正则表达式作为提取器时,绑定变量对应于正则表达式的组.你的正则表达没有.

您也可以按原样保留正则表达式并执行以下操作:

case isGovt() =>
Run Code Online (Sandbox Code Playgroud)

这可能更像你想到的帽子.