如何在go中检测有效的URL?

如何在go中检测有效的URL?,go,Go,在使用RESTAPI向程序发送请求之前,我想在程序中输入URL时尝试检查有效URL。我在go中使用了regexp包。以下是我的regexp: urlRegex := "^(https?://)[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]" 我使用regexp.MatchString()方法将其与输入匹配 match, _ := regexp.MatchString(urlRegex, args[0]) 但是,这为我提供

在使用RESTAPI向程序发送请求之前,我想在程序中输入URL时尝试检查有效URL。我在go中使用了regexp包。以下是我的regexp:

urlRegex := "^(https?://)[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]"
我使用
regexp.MatchString()
方法将其与输入匹配

match, _ := regexp.MatchString(urlRegex, args[0])
但是,这为我提供了一个适用于
http:////:9000 或http://a.


go中是否有我可以导入以进行更健壮的url检查的包?

您需要使用
net/url.Parse()


读这篇文章:你是在玩可撤销的游戏吗?我试过用这个。对于上述任何一种情况,它都不会给我一个错误。例如:url.Parse(“//:9000”)不会返回错误。因为在上述情况下,url不是绝对的。没有给出任何协议。
 import (
         "net/url"
 )

_, err := url.Parse(args[0])