go - 使用 ReplaceAllString 和 ToUpper 不起作用

标签 go

我做错了什么?为什么 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!

我认为您正在尝试将“some text”变成“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/

相关文章:

go - 将字符串数组作为参数从 go 传递给 C 函数

go - 从头到尾创建子字符串

go - 将方法转换为 func var

cryptography - 如何将 ECDSA 曲线规范从 SEC2 形式转换为 Go 需要的形式?

go - 无法解码值中包含空格的负载

go - 带有 v2 Go 模块的项目结构

unit-testing - Test_xxx func 是否可以安全地访问 golang 中的共享数据?

google-app-engine - 如何在 golang 中在 google appengine 上构建 TCP 监听器或服务器?

testing - 为特定的操作系统或架构去测试文件

linux -/dev/ttyACM0 Postfix 管道时文件不存在