golang regex在字符串中查找url

时间:2014-10-25 09:47:29

标签: regex go

我想找到一个字符串中的所有链接,然后将它们超链接 像这样的js lib https://github.com/bryanwoods/autolink-js

我试图使用很多正则表达式,但我总是有太多的错误 http://play.golang.org/p/iQiccXvFiB
我不知道go是否有不同的正则表达式语法

那么,什么样的正则表达式可以匹配字符串中的url

感谢

2 个答案:

答案 0 :(得分:4)

您可以使用xurls

import "mvdan.cc/xurls"

func main() {
        xurls.Relaxed().FindString("Do gophers live in golang.org?")
        // "golang.org"
        xurls.Relaxed().FindAllString("foo.com is http://foo.com/.", -1)
        // ["foo.com", "http://foo.com/"]
        xurls.Strict().FindAllString("foo.com is http://foo.com/.", -1)
        // ["http://foo.com/"]
}

答案 1 :(得分:1)

Use back-ticks而不是字符串文字的双引号。双引号内的反斜杠启动转义序列,这个用例不需要/不需要。

此外,您是如何期待这一点的?

"<a href="$0">$0</a>"