1 回答

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
標(biāo)準(zhǔn)包regexp
有一個(gè)*Regexp.ReplaceAllStringFunc
專門用于此目的:
來(lái)自文檔:
ReplaceAllStringFunc 返回 src 的副本,其中 Regexp 的所有匹配項(xiàng)均已替換為應(yīng)用于匹配子字符串的函數(shù) repl 的返回值。repl返回的替換是直接替換的,沒(méi)有使用Expand。
如果要替換而不需要重復(fù)替換,可以使用rand.Shuffle
shufflereplacement
然后將其中的內(nèi)容逐一使用。
例如:
rand.Shuffle(len(rep), reflect.Swapper(rep))
var err error
res := pattern.ReplaceAllStringFunc(s, func(x string) string {
if len(rep) == 0 {
err = errors.New("Not enough replacements for string.")
return "<not enough replacement>"
}
s, rep = rep[0], rep[1:]
return s
})
游樂(lè)場(chǎng):https ://play.golang.org/p/_FuFqT5rHJc
- 1 回答
- 0 關(guān)注
- 164 瀏覽
添加回答
舉報(bào)