golang regexp ReplaceAllStrings with backreference

尝试将单词开头的每个字母大写。我知道有strings.Title,但这对我的需求来说太不精确了。


我不确定为什么这不起作用:


package main


import (

    "fmt"

    "regexp"

    "strings"

)


func main() {

    re := regexp.MustCompile(`\b([a-z])`)

    fmt.Println(re.ReplaceAllString("my test string", strings.ToUpper("$1")))


}

https://play.golang.org/p/C-8QG1FrOi


红糖糍粑
浏览 227回答 1
1回答

Cats萌萌

你应该使用ReplaceAllStringFunc,例如:re.ReplaceAllStringFunc("my test string", func(s string) string {                                          return strings.ToUpper(s)})请参阅工作演示。您的代码不起作用,因为:re.ReplaceAllString("my test string", strings.ToUpper("$1"))是相同的:re.ReplaceAllString("my test string", "$1")因为 的大写$1仍然是$1。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go