我正在尝试使用我在此处找到的正则表达式将 CamelCase 转换为 Snake_case 。这是我正在使用的代码片段:
in := "camelCase"
var re1 = regexp.MustCompile(`(.)([A-Z][a-z]+)`)
out := re1.ReplaceAllString(in, "$1_$2")
Run Code Online (Sandbox Code Playgroud)
正则表达式将匹配lCase. $1这里 isl和$2is Case,所以使用替换字符串"$1_$2"应该会导致camel_Case. 相反,它会导致cameCase.
将替换字符串更改为"$1_"结果came。如果我将其更改为"$1+$2",结果将camel+Case如预期(请参阅游乐场)。
现在,我的解决方法是用作"$1+$2"替换字符串,然后使用strings.Replace将加号更改为下划线。这是一个错误还是我在这里做错了什么?
go ×1