Я пытаюсь извлечь имя хоста в Scala 2.11.8. По какой-то причине шаблона подход не работает, и я не могу понять, почему :(Почему соответствие шаблону Regex иногда не работает в Scala
val HOSTNAME = "^http[s]:\\/?\\/?([^:\\/\\s]+)".r
val text = "https://foo-bar.hostname.com/"
// evaluates to None
val host: Option[String] = {
text match {
case HOSTNAME(h) => Some(h)
case _ =>
None
}
}
// evaluates to Some(foo-bar.hostname.com)
val host: Option[String] = {
val matcher = HOSTNAME.findAllIn(text)
if (matcher.hasNext && matcher.groupCount > 0) {
Some(matcher.group(1))
} else {
None
}
}
Великий ответ, спасибо большое! – reikje