为了账号安全,请及时绑定邮箱和手机立即绑定

golang 选择性地将字符串转换为小写

golang 选择性地将字符串转换为小写

Go
心有法竹 2022-01-04 20:57:36
我正在使用一个 ldap 对象,我正在从 Activedirectory 检索一些条目。结果是以大写形式返回领域的方式,例如CN=bob,DC=example,DC=com代替cn=bob,dc=example,dc=com。有没有办法有选择地将CN和DC子字符串转换为小写?到目前为止,我strings.split多次使用(首先使用“,”,然后再次使用“=”进行迭代)以达到可以将 CN、DC 等放入列表的程度,然后对它们使用 strings.ToLower。有没有更好更聪明的方法来完成这项工作,可能使用正则表达式,这样我就可以避免两次迭代?
查看完整描述

2 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

这是使所有大写文本块后跟=tp 小写的正则表达式方法:


package main


import (

        "fmt"

        "strings"

        "regexp"

)


func main() {

        input := "CN=bob,DC=example,DC=com"

        r := regexp.MustCompile(`[A-Z]+=`)

        fmt.Println(r.ReplaceAllStringFunc(input, func(m string) string {

                return strings.ToLower(m)

        }))

}

查看Playground 演示


正则表达式 - [A-Z]+=- 匹配 1 个或多个大写 ASCII 字母及其=后的a 。然后,在 内部ReplaceAllStringFunc,我们可以使用“匿名函数”返回修改后的匹配值。


查看完整回答
反对 回复 2022-01-04
?
烙印99

TA贡献1829条经验 获得超13个赞

没有

strings.Replace(results, "CN", "cn", -1)

可以帮助?https://golang.org/pkg/strings/#Replace


查看完整回答
反对 回复 2022-01-04
  • 2 回答
  • 0 关注
  • 179 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号