9
// WildCardStringToRegexp converts a given string pattern to a regular expression matching wildcards (*) with any
10
// substring.
12
>
if pattern == "" {
13
>
return nil, errors.New("pattern cannot be empty")
14
>
}
15
>
return WildCardStringsToRegexp([]string{pattern})
16
}
17
18
// WildCardStringToRegexps converts a given slices of string patterns to a slice of regular expressions matching
19
// wildcards (*) with any substring.
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 {
29
>
result.WriteString(".*")
30
>
}
32
>
first = false
33
}
35
>
if i < len(patterns)-1 {
36
result.WriteRune('|')
37
}
38
}
40
>
return regexp.Compile(result.String())
41
}
42