sco*_*ott 3 regex string iteration go tolower
我正在使用一个 ldap 对象,我正在从 Activedirectory 检索一些条目。结果是以大写形式返回领域的方式,例如CN=bob,DC=example,DC=com代替cn=bob,dc=example,dc=com。有没有办法有选择地将CN和DC子字符串转换为小写?到目前为止,我strings.split多次使用(首先使用“,”,然后再次使用“=”进行迭代)以达到可以将 CN、DC 等放入列表的程度,然后对它们使用 strings.ToLower。有没有更好更聪明的方法来完成这项工作,可能使用正则表达式,以便我可以避免两次迭代?
这是使所有大写文本块后跟=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)
}))
}
Run Code Online (Sandbox Code Playgroud)
正则表达式 - [A-Z]+=- 匹配 1 个或多个大写 ASCII 字母及其=后的a 。然后,在 内部ReplaceAllStringFunc,我们可以使用“匿名函数”返回修改后的匹配值。
| 归档时间: |
|
| 查看次数: |
1395 次 |
| 最近记录: |