go字符串下划线匹配

将字符串以下划线分割

下面的代码会将给定的字符串以下划线分割。

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


func main() {
   snakeCase := ConvertToSnakeCase("ILikeProgrammingINGo123")
   fmt.Println("String in snake case : ", snakeCase)
}

func ConvertToSnakeCase(input string) string {
  var matchChars = regexp.MustCompile("(.)([A-Z][a-z]+)")
  var matchAlpha = regexp.MustCompile("([a-z0-9])([A-Z])")

  snake := matchChars.ReplaceAllString(input, "${1}_${2}")
  snake = matchAlpha.ReplaceAllString(snake, "${1}_${2}")
  return strings.ToLower(snake)
}


output:
String in snake case :  i_like_programming_in_go123
posted @ 2022-05-07 09:12  技术颜良  阅读(131)  评论(0编辑  收藏  举报