Scala 正则表达式模式匹配不起作用


val login = "login user=(.*), token=(.*)".r
"login user=SapHana_dummy token=dummy" match {
  case login(user, token) =>
    println("success")
}

此代码始终引发 MatchError。而不是按预期打印"成功"。为什么?

因为您的模式需要一个逗号,所以这里:

login user=(.*), token=(.*)
               ^

这不在输入文本中。

另外,为了尽量减少回溯,我会在这里使用一个不贪婪的量词:

login user=(.*?) token=(.*)

最新更新