Fix placeholder parsing

This commit is contained in:
Ingo Oppermann
2024-03-14 11:15:10 +01:00
parent d716ff37cb
commit f6bba7c571
2 changed files with 10 additions and 3 deletions

View File

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

View File

@@ -148,9 +148,16 @@ func TestReplaceGlob(t *testing.T) {
},
nil,
)
r.RegisterReplaceFunc(
"foo:123",
func(params map[string]string, config *app.Config, section string) string {
return "Hello 456"
},
nil,
)
replaced := r.Replace("{foo:baz}, {foo:bar}", "foo:*", "", nil, nil, "")
require.Equal(t, "Hello foobaz, Hello foobar", replaced)
replaced := r.Replace("{foo:baz}, {foo:bar}, {foo:123}", "foo:*", "", nil, nil, "")
require.Equal(t, "Hello foobaz, Hello foobar, Hello 456", replaced)
}
func TestParseParams(t *testing.T) {