[英]Scala regex pattern matching doesn't work
val login = "login user=(.*), token=(.*)".r
"login user=SapHana_dummy token=dummy" match {
case login(user, token) =>
println("success")
}
This code always throws MatchError. 此代码始终引发MatchError。 Instead of printing "success" as intended.
而不是按预期方式打印“成功”。 Why?
为什么?
Because your pattern expects a comma, here: 因为您的模式需要逗号,所以在这里:
login user=(.*), token=(.*)
^
Which is not in the input text. 输入文本中没有哪个。
Also, to minimize backtracking, I'd use an ungreedy quantifier here: 另外,为了最大程度地减少回溯,我将在此处使用不贪婪的量词:
login user=(.*?) token=(.*)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.