package pkg import "regexp" type SysDB struct { Fields []*DBItem `json:"fields"` } type DBItem struct { Key string `json:"key"` Value string `json:"value"` } func ParseSysDB(s string) *SysDB { sdb := new(SysDB) sdb.Parse(s) return sdb } //func ParseSysDBConfig(s string) *SysDB { // d := new(SysDB) // d.Parse(s) // return d //} // list sys db parser, returns name and value associated to every item func (d *SysDB) Parse(s string) { for _, k := range regexp.MustCompile(`sys\s+db\s+(\S+)\s+{(.|\n)*?value\s+"(.*?)"`).FindAllStringSubmatch(s, -1) { d.Fields = append(d.Fields, &DBItem{ Key: k[1], Value: k[3], }) } } func FindDBKey(key string, db []*DBItem) *DBItem { for _, k := range db { if k.Key == key { return k } } return nil } func (d *SysDB) FindDBKey(key string) *DBItem { for _, k := range d.Fields { if k.Key == key { return k } } return nil }