小编use*_*859的帖子

Golang regexp.ReplaceAllString 忽略替换字符串“$X_”

我正在尝试使用我在此处找到的正则表达式将 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

3
推荐指数
1
解决办法
676
查看次数

标签 统计

go ×1