Я пытаюсь разбить сообщение системного журнала на ключ: значение 'map [string] string', но, похоже, не могу получить правильное регулярное выражение.
Исходная строка разграничивает свои ключи и значения знаком '='. Тем не менее, каждая пара разделена пробелами с пробелами, которые фактически находятся в пределах значений. У меня это довольно близко, но, как вы можете видеть из ссылки ниже, я не могу получить остальные значения 'start', 'end' или 'suser'.
Вот ссылка на игровую площадку Голанга, показывающая мою точную проблему:
package main
import (
"fmt"
"regexp"
)
var rex = regexp.MustCompile("(\\w+)=(.+?[^\\\\s\\\\w+=]+)")
func main() {
conn := "start=Mar 26 2019 10:36:14 +00:00 end=Mar 26 2019 10:36:14 +00:00 suser=AD.COM\\\\Username src=10.1.0.51"
data := rex.FindAllStringSubmatch(conn, -1)
res := make(map[string]string)
for _, kv := range data {
k := kv[1]
v := kv[2]
res[k] = v
}
for v := range res {fmt.Printf("%s: %v\n", v, res[v])}
}