go - 如何从 URL 中检索域?
问题描述
在 Go 中,如何仅从 URL 字符串中提取域名?
前:
https://www.example.com/some-random-url
www.example.com/some-random-url
example.com/some-random-url
www.example.com
subdomain.example.com
后:
example.com
此外,我仅限于使用 Golang 标准库。
解决方案
我认为由于您的示例也具有不正确的 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 未正确解析,您可以轻松更新 RegEx。
上述内容的 Go Playground 链接:此处。
推荐阅读
- google-apps-script - 为什么 getActiveRange() 不起作用,还有其他选择吗?
- sql - 从文本中提取多个数值
- laravel - Laravel 护照抛出错误:“在 null 上调用成员函数 createToken()”
- ios - 折叠 SwiftUI 中的 doubleColumn NavigationView 详细信息,就像在 UISplitViewController 上折叠一样?
- java - 如何在 Maven POM 中处理 3rd 方 JAR 和远程存储库?
- sql - 比较 2 个表并将表 A 中的 RowID 写入表 B
- python - 将嵌套字典按键转换为excel
- node.js - Process.stdout.write 将“true”附加到控制台输出
- prolog - Prolog 中的“外部连接”等价物是什么?
- python - 如何从嵌套字典中获取键?