2 回答
TA贡献1825条经验 获得超6个赞
我认为由于您的示例也有不正确的URL,因此您需要使用常规表达来提取URL中的域。请查找下面的示例代码,以获取您共享的示例的域:
package main
import (
"fmt"
"regexp"
)
// Main function
func main() {
// Finding regexp from the given string
// Using FindString() method
m := regexp.MustCompile(`\.?([^.]*.com)`)
fmt.Println(m.FindStringSubmatch("https://www.example.com/some-random-url")[1])
fmt.Println(m.FindStringSubmatch("www.example.com/some-random-url")[1])
fmt.Println(m.FindStringSubmatch("example.com/some-random-url")[1])
fmt.Println(m.FindStringSubmatch("www.example.com")[1])
fmt.Println(m.FindStringSubmatch("subdomain.example.com")[1])
}
理想情况下,这涵盖了所有情况(包括格式不正确的URL)。如果有任何 URL 未正确解析,您可以轻松更新正则表达式。
去游乐场链接以上:这里。
TA贡献1815条经验 获得超13个赞
我终于想通了。
package main
import (
"fmt"
"log"
"net/url"
"strings"
)
func main() {
url, err := url.Parse("https://www.example.com")
if err != nil {
log.Fatal(err)
}
parts := strings.Split(url.Hostname(), ".")
domain := parts[len(parts)-2] + "." + parts[len(parts)-1]
fmt.Println(domain)
}
example.com
如果域名是这样的,它会给你一个恐慌。subdomain.example.com
https://play.golang.org/p/Li0PviAr2jU
- 2 回答
- 0 关注
- 191 浏览
添加回答
举报
