gpt4 book ai didi

regex - golang 使用正则表达式从键=值对字符串中提取唯一键和值

转载 作者:数据小太阳 更新时间:2023-10-29 03:34:55 26 4
gpt4 key购买 nike

我有以下 go 字符串:

dbConnStr := "user=someone password=something host=superduperhost sslmode=something"

但 k=v 对代码可以按任何顺序排列,例如:

dbConnStr := "host=superduperhost user=someone password=something"

请注意键顺序的不同以及 str 中缺少的“sslmode”键。

另外,也可以不用空格,单独的 k,v 对也可以用换行符分隔。

现在我想使用正则表达式从给定的字符串中提取唯一键及其对应的值。如果有帮助,我可以列出所有可能出现的键(用户名、密码、主机、sslmode),但理想情况下,我想要一个适用于任何键和值列表的正则表达式解决方案。

如何做到这一点?我知道使用 regexp.FindStringSubmatch 可能是可能的,但我无法全神贯注地编写正则表达式。

最佳答案

从 golang nuts group 得到了答案。

    var rex = regexp.MustCompile("(\\w+)=(\\w+)")

conn := `user=someone password=something host=superduperhost
sslmode=something`
data := rex.FindAllStringSubmatch(conn, -1)

res := make(map[string]string)
for _, kv := range data {
k := kv[1]
v := kv[2]
res[k] = v
}
fmt.Println(res)

Golang Playground 网址:https://play.golang.org/p/xSEX1CAcQE

关于regex - golang 使用正则表达式从键=值对字符串中提取唯一键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44321199/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com