英文:
golang regex to find urls in a string
问题
我正在尝试在字符串中找到所有的链接,并将它们转换为超链接,就像这个 JavaScript 库 https://github.com/bryanwoods/autolink-js。
我尝试使用了很多正则表达式,但总是遇到太多错误 http://play.golang.org/p/iQiccXvFiB。我不知道 Go 语言是否有不同的正则表达式语法。
所以,有没有适用于 Go 语言的正则表达式可以很好地匹配字符串中的 URL?
谢谢。
英文:
I am tring to find all links in a string and then hyperlink them
like this js lib https://github.com/bryanwoods/autolink-js
i tried to use alot of regex but i always got too many errors
http://play.golang.org/p/iQiccXvFiB
i don't know if go has a different regex syntax
so, what regex that works in go that is good to match urls in strings
thanks
答案1
得分: 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/"]
}
英文:
You can use 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
得分: 2
请使用反引号(`)而不是双引号(")来表示字符串字面值。双引号内的反斜杠会启动转义序列,而在这种情况下您不需要或不希望使用转义序列。
此外,您对这段代码的预期是什么?
`<a href="$0">$0</a>`
英文:
Use back-ticks instead of double-quotes for your string literals. Back-slashes inside double-quotes start escape sequences, which you don't need/want for this use case.
Additionally, how did you expect this to work?
"<a href="$0">$0</a>"
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论