使用golang正则表达式从字符串中查找URL

4
2个回答

9
您可以使用 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/"]
}

2
使用反引号而非双引号作为字符串字面值。在双引号内部使用反斜杠会启动转义序列,但在这种情况下您不需要或不希望这样做。
此外,您期望这样工作吗?
"<a href="$0">$0</a>"

我使用反斜杠解决了它,但核心问题就像你所说的(使用双引号),所以我需要使用反引号,谢谢。 你说的“你期望这样工作是什么意思?”是什么意思?有什么问题吗?我已经给出了我想要的输出。 - Marwan
这个 "<a href="$0">$0</a>" 是一个字符串字面量 "<a href=", followed by $0 (which means nothing in Go), followed by the string ">$0</a>"。如果你要使用双引号,那么在字符串内部就不能再使用双引号,除非你对它们进行转义。 - thwd
没错,我已经把它改成了“<a href="$0" targe="_blank" rel="nofollow">$0</a>”,谢谢。 - Marwan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接