18
// WildCardStringToRegexps converts a given slices of string patterns to a slice of regular expressions matching
19
// wildcards (*) with any substring.
20
>
func WildCardStringsToRegexp(patterns []string) (*regexp.Regexp, error) {
wildcard.go
21
>
var result strings.Builder
22
>
result.WriteRune('^')
23
>
for i, pattern := range patterns {
24
>
result.WriteRune('(')
25
>
first := true
26
>
for literal := range strings.SplitSeq(pattern, "*") {
27
>
if !first {
28
// Replace * with .*
29
result.WriteString(".*")
30
}
31
>
result.WriteString(regexp.QuoteMeta(literal))
wildcard.go
32
>
first = false
33
}
35
>
if i < len(patterns)-1 {
36
result.WriteRune('|')
37
}
38
}
40
>
return regexp.Compile(result.String())
41
}
42