为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Golang 中重写 wiki 链接?

如何在 Golang 中重写 wiki 链接?

Go
紫衣仙女 2023-05-15 14:48:49
一直试图用 Golang 重写一些文本:http://play.golang.org/p/0hoXx7qA0b5如何匹配[[]]文本字符串中的多个链接?log.Printf("match: %+v", match)没有清楚地显示日志组匹配。我是否遗漏了一些可以帮助我处理比赛的东西,所以我知道它是否是带有标题的链接。有没有比使用正则表达式更好的方法?
查看完整描述

1 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

这似乎(.*)是一场贪婪的比赛,因此您应该尝试限制第一组。根据您的样本输入,这|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")

}

操场


查看完整回答
反对 回复 2023-05-15
  • 1 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信