如何在 Golang 中重写 wiki 链接?

一直试图用 Golang 重写一些文本:http://play.golang.org/p/0hoXx7qA0b5

如何匹配[[]]文本字符串中的多个链接?

log.Printf("match: %+v", match)没有清楚地显示日志组匹配。我是否遗漏了一些可以帮助我处理比赛的东西,所以我知道它是否是带有标题的链接。

有没有比使用正则表达式更好的方法?



紫衣仙女
浏览 110回答 1
1回答

慕标5832272

这似乎(.*)是一场贪婪的比赛,因此您应该尝试限制第一组。根据您的样本输入,这|about是可选的。var re = regexp.MustCompile(`\[\[([^|]*)(?:\|(.*))?\]\]`)func relink(input string) string {    var reform []string        for _, match := range re.FindAllStringSubmatch(input, -1) {        name, short := match[1], match[2]        if short == "" {            short = strings.ToLower(name)        }        reform = append(reform, fmt.Sprintf("[%s](%s)", name, short))    }    return strings.Join(reform, "\n")}操场
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go