mirror of
https://github.com/prometheus/prometheus.git
synced 2025-03-05 20:59:13 -08:00
Merge pull request #234 from grafana/56quarters/mimir-issue-1866
When removing start/end text op in regexp, don't break the contract.
This commit is contained in:
commit
ceaa77f14d
|
@ -81,6 +81,21 @@ func TestMatcher(t *testing.T) {
|
||||||
value: "foo-bar",
|
value: "foo-bar",
|
||||||
match: false,
|
match: false,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
matcher: mustNewMatcher(t, MatchRegexp, "$*bar"),
|
||||||
|
value: "foo-bar",
|
||||||
|
match: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
matcher: mustNewMatcher(t, MatchRegexp, "bar^+"),
|
||||||
|
value: "foo-bar",
|
||||||
|
match: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
matcher: mustNewMatcher(t, MatchRegexp, "$+bar"),
|
||||||
|
value: "foo-bar",
|
||||||
|
match: false,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
|
|
|
@ -163,6 +163,9 @@ func clearBeginEndText(re *syntax.Regexp) {
|
||||||
}
|
}
|
||||||
if len(re.Sub) == 1 {
|
if len(re.Sub) == 1 {
|
||||||
if re.Sub[0].Op == syntax.OpBeginText || re.Sub[0].Op == syntax.OpEndText {
|
if re.Sub[0].Op == syntax.OpBeginText || re.Sub[0].Op == syntax.OpEndText {
|
||||||
|
// We need to remove this element. Since it's the only one, we convert into a matcher of an empty string.
|
||||||
|
// OpEmptyMatch is regexp's nop operator.
|
||||||
|
re.Op = syntax.OpEmptyMatch
|
||||||
re.Sub = nil
|
re.Sub = nil
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue