gpt4 book ai didi

regex - 如何在 Scala 中从较大的字符串中提取有效的电子邮件

转载 作者:行者123 更新时间:2023-12-04 22:52:20 26 4
gpt4 key购买 nike

我的 Scala 版本 2.7.7

我试图从更大的字符串中提取电子邮件地址。字符串本身没有格式。我得到的代码:

import scala.util.matching.Regex
import scala.util.matching._
val Reg = """\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b""".r
"yo my name is joe : joe@gmail.com" match {
case Reg(e) => println("match: " + e)
case _ => println("fail")
}

RegEx 在 RegExBuilder 中通过,但在 scala 中没有通过。此外,如果有另一种方法可以在没有正则表达式的情况下执行此操作,那也可以。谢谢!

最佳答案

正如 Alan Moore 指出的,您需要添加 (?i)到模式的开头,使其不区分大小写。另请注意,使用 Regex 直接匹配整个字符串。如果你想在更大的字符串中找到一个,你可以调用 findFirstIn()或使用 Regex 的类似方法之一。

val reg = """(?i)\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b""".r
reg findFirstIn "yo my name is joe : joe@gmail.com" match {
case Some(email) => println("match: " + email)
case None => println("fail")
}

关于regex - 如何在 Scala 中从较大的字符串中提取有效的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2846025/

26 4 0
文章推荐: flash - 是否有用于构建 AIR 应用程序的免费工具?
文章推荐: f# - 定义样式首选项
文章推荐: select - 尊重空白填充以固定宽度显示列