一直試圖用 Golang 重寫一些文本:http://play.golang.org/p/0hoXx7qA0b5如何匹配[[]]文本字符串中的多個鏈接?log.Printf("match: %+v", match)沒有清楚地顯示日志組匹配。我是否遺漏了一些可以幫助我處理比賽的東西,所以我知道它是否是帶有標題的鏈接。有沒有比使用正則表達式更好的方法?
1 回答

慕標5832272
TA貢獻1966條經(jīng)驗 獲得超4個贊
這似乎(.*)是一場貪婪的比賽,因此您應該嘗試限制第一組。根據(jù)您的樣本輸入,這|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")
}
- 1 回答
- 0 關(guān)注
- 141 瀏覽
添加回答
舉報
0/150
提交
取消