@@ -28,12 +28,20 @@ import (
2828
2929var delimiter = "\\ $"
3030var substitutionNamed = "[_a-z][_a-z0-9]*"
31-
3231var substitutionBraced = "[_a-z][_a-z0-9]*(?::?[-+?](.*))?"
3332
33+ var groupEscaped = "escaped"
34+ var groupNamed = "named"
35+ var groupBraced = "braced"
36+ var groupInvalid = "invalid"
37+
3438var patternString = fmt .Sprintf (
35- "%s(?i:(?P<escaped>%s)|(?P<named>%s)|{(?:(?P<braced>%s)}|(?P<invalid>)))" ,
36- delimiter , delimiter , substitutionNamed , substitutionBraced ,
39+ "%s(?i:(?P<%s>%s)|(?P<%s>%s)|{(?:(?P<%s>%s)}|(?P<%s>)))" ,
40+ delimiter ,
41+ groupEscaped , delimiter ,
42+ groupNamed , substitutionNamed ,
43+ groupBraced , substitutionBraced ,
44+ groupInvalid ,
3745)
3846
3947var defaultPattern = regexp .MustCompile (patternString )
@@ -164,14 +172,14 @@ func DefaultReplacementAppliedFunc(substring string, mapping Mapping, cfg *Confi
164172
165173 matches := pattern .FindStringSubmatch (substring )
166174 groups := matchGroups (matches , pattern )
167- if escaped := groups ["escaped" ]; escaped != "" {
175+ if escaped := groups [groupEscaped ]; escaped != "" {
168176 return escaped , true , nil
169177 }
170178
171179 braced := false
172- substitution := groups ["named" ]
180+ substitution := groups [groupNamed ]
173181 if substitution == "" {
174- substitution = groups ["braced" ]
182+ substitution = groups [groupBraced ]
175183 braced = true
176184 }
177185
@@ -322,12 +330,12 @@ func extractVariable(value interface{}, pattern *regexp.Regexp) ([]Variable, boo
322330 values := []Variable {}
323331 for _ , match := range matches {
324332 groups := matchGroups (match , pattern )
325- if escaped := groups ["escaped" ]; escaped != "" {
333+ if escaped := groups [groupEscaped ]; escaped != "" {
326334 continue
327335 }
328- val := groups ["named" ]
336+ val := groups [groupNamed ]
329337 if val == "" {
330- val = groups ["braced" ]
338+ val = groups [groupBraced ]
331339 }
332340 name := val
333341 var defaultValue string
0 commit comments