Fix placeholder parsing

This commit is contained in:
Ingo Oppermann
2024-03-14 12:03:04 +01:00
parent ccd9a5fbc1
commit bfe53a2461
2 changed files with 4 additions and 3 deletions

View File

@@ -51,7 +51,7 @@ type replacer struct {
func New() Replacer { func New() Replacer {
r := &replacer{ r := &replacer{
templates: make(map[string]template), templates: make(map[string]template),
re: regexp.MustCompile(`{([a-z:]+)(?:\^(.))?(?:,(.*?))?}`), re: regexp.MustCompile(`{([a-z]+(?::[0-9A-Za-z]+)?)(?:\^(.))?(?:,(.*?))?}`),
templateRe: regexp.MustCompile(`{([a-z:]+)}`), templateRe: regexp.MustCompile(`{([a-z:]+)}`),
} }

View File

@@ -138,7 +138,8 @@ func TestReplaceGlob(t *testing.T) {
r := New() r := New()
r.RegisterTemplate("foo:bar", "Hello foobar", nil) r.RegisterTemplate("foo:bar", "Hello foobar", nil)
r.RegisterTemplate("foo:baz", "Hello foobaz", nil) r.RegisterTemplate("foo:baz", "Hello foobaz", nil)
r.RegisterTemplate("foo:123", "Hello 456", nil)
replaced := r.Replace("{foo:baz}, {foo:bar}", "foo:*", "", nil, nil, "") replaced := r.Replace("{foo:baz}, {foo:bar}, {foo:123}", "foo:*", "", nil, nil, "")
require.Equal(t, "Hello foobaz, Hello foobar", replaced) require.Equal(t, "Hello foobaz, Hello foobar, Hello 456", replaced)
} }