从电子邮件地址中提取域名的一行代码

Mar*_*lic 2 regex string email scala pattern-matching

如何选择性地domain从中提取local-part@domain?我的尝试是

Try(email.split("@")(1)).toOption
Run Code Online (Sandbox Code Playgroud)

但似乎应该有一种不依赖异常处理的方法。理想情况下,我追求的是一句台词。

Lui*_*rez 5

没有一个衬垫,并且仅适用于2.13。但这对我来说似乎很清楚。

def extractDomain(email: String): Option[String] = email match {
  case s"${_}@${domain}" => Some(domain)
  case _ => None
}
Run Code Online (Sandbox Code Playgroud)

(请注意,如果有多个@标志,则只会在第一个标志上拆分)