我有以下去字符串:golang使用提取唯一密钥,从密钥=值对字符串值正则表达式
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但不能围绕编写正则表达式包装我的头。
事情可能变得复杂,如果值中包含'='。查看'lib/pq'中['parseOpts'](https://github.com/lib/pq/blob/master/conn.go#L420)函数的实现。它将键/值对分成一个'map [string] string'。 – putu