在Scala中,默认情况下会锚定正则表达式- 如果您将其设为unanchored,则可以使用:
val HOSTNAME = "^http[s]:\\/?\\/?([^:\\/\\s]+)".r.unanchored
结果将是Some(foo-bar.hostname.com)
(我假设你正在尝试匹配).
或者 - 在下一个斜杠之后添加一个匹配任何东西的零件:
val HOSTNAME = "^http[s]:\\/?\\/?([^:\\/\\s]+)\\/.*".r
会返回相同的结果.
最后 - 如果您只想解析标准URI,可以使用java.net.URI
:
URI.create(text).getHost // returns foo-bar.hostname.com