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 關注
- 118 瀏覽
添加回答
舉報