小编xue*_*eng的帖子

为什么Scala正则表达式在模式匹配中的工作方式有所不同

我有一个简单的正则表达式val emailRegex = "\\w+@\\w+\\.\\w+".r,可以匹配简单的电子邮件(当然,不是用于生产)。当我运行以下代码时:

println(email match {
  case emailRegex(_) => "cool"
  case _ => "not cool"
})

printlnemailRegex.pattern.matcher(email).matches())
Run Code Online (Sandbox Code Playgroud)

它打印not cooltrue。添加锚点也无济于事:"^\\w+@\\w+\\.\\w+$".r给出相同的结果。但是当我加上括号时,"(\\w+@\\w+\\.\\w+)".r它会打印cooltrue

为什么会这样?

regex scala pattern-matching

1
推荐指数
2
解决办法
57
查看次数

标签 统计

pattern-matching ×1

regex ×1

scala ×1