string - 如何将驼峰大小写字符串转换为蛇形大小写

标签 string go

我有一个字符串

str := "IGotInternAtGeeksForGeeks"

我试着把它转换成

str = "i_got_intern_at_geeks_for_geeks"

最佳答案

试试这个,

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

var matchFirstCap = regexp.MustCompile("(.)([A-Z][a-z]+)")
var matchAllCap   = regexp.MustCompile("([a-z0-9])([A-Z])")

func ToSnakeCase(str string) string {
    snake := matchFirstCap.ReplaceAllString(str, "${1}_${2}")
    snake  = matchAllCap.ReplaceAllString(snake, "${1}_${2}")
    return strings.ToLower(snake)
}

运行:

func main() {   
    fmt.Println(ToSnakeCase("IGotInternAtGeeksForGeeks"))
}

输出:

i_got_intern_at_geeks_for_geeks

注意:这不适用于许多非英语语言。

关于string - 如何将驼峰大小写字符串转换为蛇形大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56616196/

相关文章:

android - 无法访问 'split' : it is private in file

python - 高效查找大型列表中的字符串不匹配

string - 如何将字符串值转换为正确的 reflect.Kind?

function - 不带括号的 Golang 函数调用

Golang 访问通用结构的数据元素

java - 字符串数组中的错误 indexOf

java - 搜索 unicode 字符串

java - 为什么这个 .split 会导致数组越界错误?

go - 尝试使用gob.Decoder()解码Blob时出现错误(gob:未知类型ID或损坏的数据)

docker - 无法启动服务应用程序 : OCI runtime create failed: container_linux. go:349