Lui*_*max 4 regex scala scala-2.7
我的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")
}
Run Code Online (Sandbox Code Playgroud)
正则表达式在RegExBuilder中传递但不传递scala.另外,如果有另一种方法来做这个没有正则表达式也可以.谢谢!
正如Alan Moore指出的那样,您需要将其添加(?i)
到模式的开头以使其不区分大小写.另请注意,使用正则表达式直接匹配整个字符串.如果要在较大的字符串中找到一个,可以调用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")
}
Run Code Online (Sandbox Code Playgroud)