gpt4 book ai didi

regex - 使用正则表达式和 Scala 匹配域名

转载 作者:行者123 更新时间:2023-12-02 22:02:55 24 4
gpt4 key购买 nike

我试过这个问题的正则表达式:how to get domain name from URL

但是找不到域名。这是我的实现:

    val Names = """.*([^\.]+)(com|net|org|info|coop|int|co\.uk|org\.uk|ac\.uk|uk|__and so on__)$""".r
val s = Names.findFirstIn("www.google.com")
s match {
case Some(name) =>
println(name)
case None =>
println("No name value")
}

“无名称值”始终打印到标准输出。正则表达式或我的 Scala 实现有问题吗?

最佳答案

我通过在扩展前添加 . 来修复正则表达式。顺便说一句,因为您必须找到您感兴趣的组(#1),所以您应该使用 findFirstMatchIn 而不是 findFirstIn

val Names = """([^.]+)\.(com|net|org|info|coop|int|co\.uk|org\.uk|ac\.uk|uk|__and so on__)$""".r
val s = Names.findFirstMatchIn("www.google.com")
s match {
case Some(name) =>
println(name)
println(name.group(1))
case None =>
println("No name value")
}

打印:

google.com
google
Names: scala.util.matching.Regex = ([^.]+)\.(com|net|org|info|coop|int|co\.uk|org\.uk|ac\.uk|uk|__and so on__)$
s: Option[scala.util.matching.Regex.Match] = Some(google.com)

已编辑:抱歉,我误读了您的问题。我重写了答案。

关于regex - 使用正则表达式和 Scala 匹配域名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16584174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com