2020-10-01 23:57:11 +00:00
|
|
|
package pattern
|
|
|
|
|
2021-01-04 23:01:39 +00:00
|
|
|
import (
|
|
|
|
"path/filepath"
|
|
|
|
"strings"
|
|
|
|
)
|
2020-10-01 23:57:11 +00:00
|
|
|
|
|
|
|
// Match checks whether a string matches a pattern
|
|
|
|
func Match(pattern, s string) bool {
|
|
|
|
if pattern == "*" {
|
|
|
|
return true
|
|
|
|
}
|
2021-01-16 01:11:43 +00:00
|
|
|
// Separators found in the string break filepath.Match, so we'll remove all of them.
|
|
|
|
// This has a pretty significant impact on performance when there are separators in
|
|
|
|
// the strings, but at least it doesn't break filepath.Match.
|
|
|
|
s = strings.ReplaceAll(s, string(filepath.Separator), "")
|
|
|
|
pattern = strings.ReplaceAll(pattern, string(filepath.Separator), "")
|
2020-10-01 23:57:11 +00:00
|
|
|
matched, _ := filepath.Match(pattern, s)
|
|
|
|
return matched
|
|
|
|
}
|