diff --git a/envconf.go b/envconf.go index 849a968..da14de4 100644 --- a/envconf.go +++ b/envconf.go @@ -259,7 +259,7 @@ func (c *Config) Status() (ok bool) { } func cleanKey(key string) string { - expr := regexp.MustCompile("__+") + expr := regexp.MustCompile("(?:^_+)|(?:_+(?=_))|(?:_$)") fn := func(r rune) rune { if (r >= '0' && r <= '9') || (r >= 'A' && r <= 'Z') || r == '_' { return r @@ -268,7 +268,7 @@ func cleanKey(key string) string { } key = strings.Map(fn, strings.ToUpper(key)) - return expr.ReplaceAllString(key, "_") + return expr.ReplaceAllString(key, "") } func keySplit(key string) (left string, right string, ok bool) {