我正在使用 Golang 正则表达式包,我想使用带有参数的正则表达式 ReplaceAllStringFunc,而不仅仅是源字符串。
例如,我想更新此文本
"<img src=\"/m/1.jpg\" /> <img src=\"/m/2.jpg\" /> <img src=\"/m/3.jpg\" />"
To(将“m”更改为“a”或其他任何内容):
"<img src=\"/a/1.jpg\" /> <img src=\"/a/2.jpg\" /> <img src=\"/a/3.jpg\" />"
我想要类似的东西:
func UpdateText(text string) string {
re, _ := regexp.Compile(`<img.*?src=\"(.*?)\"`)
text = re.ReplaceAllStringFunc(text, updateImgSrc)
return text
}
// update "/m/1.jpg" to "/a/1.jpg"
func updateImgSrc(imgSrcText, prefix string) string {
// replace "m" by prefix
return "<img src=\"" + newImgSrc + "\""
}
我检查了文档, ReplaceAllStringFunc 不支持参数,但是实现我的目标的最佳方法是什么?
更一般地说,我想找到一个模式的所有出现,然后用一个由源字符串+一个新参数组成的新字符串更新每个模式,有人能给出任何想法吗?
牧羊人nacy
拉丁的传说
相关分类