我有以下go字符串:
dbConnStr := "user=someone password=something host=superduperhost sslmode=something"
但是k = v对代码可以是任何顺序,例如:
dbConnStr := "host=superduperhost user=someone password=something"
注意键顺序的差异以及str中缺少的“sslmode”键。
此外,有可能代替空格,单个k,v对也可以用换行符分隔。
现在我想使用regexp从给定字符串中提取唯一键及其对应的值。如果它会有所帮助,我可以给出一个可能出现的所有可能键的列表(用户名,密码,主机,sslmode),但我理想地喜欢一个适用于任何键和值列表的正则表达式解决方案。
怎么做?我知道有可能使用regexp.FindStringSubmatch,但无法完全编写正则表达式。
答案 0 :(得分:1)
从golang nuts小组得到答案。
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
答案 1 :(得分:0)