我做错了什么?为什么ToUpper无法使用?

package main

import (
    "fmt"
    "regexp"
    "strings"
)

func main() {

    r := regexp.MustCompile("(\\w)(\\w+)")

    // Getting "sometext" instead of "SomeText"
    res := r.ReplaceAllString("some text", strings.ToUpper("$1") + "$2")

    fmt.Println(res)
}

最佳答案

恐怕您不能使用$1$2!

我认为您正在尝试将“某些文本”转换为“SomeText”。

Here is an alternative solution

package main

import (
    "fmt"
    "regexp"
    "strings"
)

func main() {
    r := regexp.MustCompile(`\s*\w+\s*`)
    res := r.ReplaceAllStringFunc("some text", func(s string) string {
        return strings.Title(strings.TrimSpace(s))
    })

    fmt.Println(res)
}

关于go - 使用ReplaceAllString和ToUpper无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16456184/

10-15 23:57