我正在尝试转换一些文本,其中第一个字母被更改或保留为大写字母,其余部分转换为全部小写。即这是一些要更改的文本 - 这是要更改的一些文本我尝试了以下方法,但 \ 在 Go 中不兼容。但是,我仍然需要以相同的格式使用它。将: - 正则表达式: (\w+)([A-Z]) 替换为: “\L$1$2”
1 回答

小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
正如评论中提到的,您并不真正想要正则表达式,因为正则表达式并不是为此而设计的。
标准 Go 库的问题在于存在字符串。Title,但这会将所有单词转换为每个单词的第一个字符的大写字母,但查看字符串的源。标题有助于创建有效的内容:
textToChange := "This Is SOME TEXT TO CHANGE"
isFirstChar := true
final := strings.Map(func(r rune) rune {
if isFirstChar {
isFirstChar = false
return unicode.ToUpper(r)
}
return r
}, strings.ToLower(textToChange))
这个解决方案并不完美(我还没有真正测试过它 - 它假设unicode。ToUpper会很乐意转换任何字符),但它可以使用unicode。
- 1 回答
- 0 关注
- 282 浏览
添加回答
举报
0/150
提交
取消