【发布时间】:2016-07-20 05:18:00
【问题描述】:
我正在尝试使用我找到的正则表达式 here 将 CamelCase 转换为 snake_case。这是我正在使用的代码的 sn-p:
in := "camelCase"
var re1 = regexp.MustCompile(`(.)([A-Z][a-z]+)`)
out := re1.ReplaceAllString(in, "$1_$2")
正则表达式将匹配lCase。 $1 这里是l 和$2 是Case,所以使用替换字符串"$1_$2" 应该导致camel_Case。相反,它会产生cameCase。
将替换字符串更改为"$1_" 会导致came。如果我将其更改为"$1+$2",结果将如预期的那样为camel+Case (see playground)。
目前,我的解决方法是使用"$1+$2" 作为替换字符串,然后使用strings.Replace 将加号更改为下划线。这是一个错误还是我在这里做错了什么?
【问题讨论】:
标签: go