diff --git a/pkg/labels/regexp.go b/pkg/labels/regexp.go index fb684430c6..a7ba0a5946 100644 --- a/pkg/labels/regexp.go +++ b/pkg/labels/regexp.go @@ -410,10 +410,10 @@ type anyStringMatcher struct { } func (m *anyStringMatcher) Matches(s string) bool { - if !m.matchNL && strings.ContainsRune(s, '\n') { + if !m.allowEmpty && len(s) == 0 { return false } - if !m.allowEmpty && len(s) == 0 { + if !m.matchNL && strings.ContainsRune(s, '\n') { return false } return true diff --git a/pkg/labels/regexp_test.go b/pkg/labels/regexp_test.go index a2193d9481..6e39b9ed7a 100644 --- a/pkg/labels/regexp_test.go +++ b/pkg/labels/regexp_test.go @@ -82,8 +82,14 @@ func TestNewFastRegexMatcher(t *testing.T) { } func BenchmarkNewFastRegexMatcher(b *testing.B) { - benchValues := append(values, - RandStringRunes(128), RandStringRunes(256), RandStringRunes(1024)) + benchValues := values + for _, v := range values { + for i := 5; i < 50; i = i + 5 { + benchValues = append(benchValues, v+RandStringRunes(i)) + benchValues = append(benchValues, RandStringRunes(i)+v+RandStringRunes(i)) + benchValues = append(benchValues, RandStringRunes(i)+v) + } + } for _, r := range regexes { r := r b.Run(r, func(b *testing.B) {