A cheat sheet for minimatch.
* matches any string, not including than path separator
** matches any string, including path separators
? matches single character other than path separator
| Pattern | Matches | Does not match |
|---|
xxx.* | xxx.yyy, xxx.y.z | abcxxx.yyy, xxx.y/z |
xxx/*/yyy | xxx/abc/yyy | xxx/yyy, xxx/abc/def/yyy, xxx/.abc/yyy |
xxx/**/yyy | xxx/abc/yyy, xxx/yyy, xxx/abc/def/yyy | xxx/.abc/yyy |
xxx/**yyy | xxx/yyy | xxx/abc/yyy, xxx/abc/def/yyy, xxx/.abc/yyy |
x?y | xAy | xy, xABy, x/y |
{foo,bar} matches "foo" and "bar"
{1..3} matches "1", "2" and "3"
| Pattern | Matches | Does not match |
|---|
{foo,bar} | foo, bar | baz |
{x,y/*}/z | x/z, y/a/z | y/z |
foo{1..3} | foo1, foo2, foo3 | foo, foo0 |
!-prefixed patterns invert match
| Pattern | Matches | Does not match |
|---|
!abc | a, xyz | abc |
#-prefixed patterns are treated as comments and match nothing
\# to escape
| Pattern | Matches | Does not match |
|---|
#abc | | abc, #abc |
\#abc | #abc | abc |
+(pattern) matches one or more repetition of pattern (like /(pattern)+/)
*(pattern) matches zero or more repetition of pattern (like /(pattern)*/)
?(pattern) matches zero or one repetition of pattern (like /(pattern)?/)
@(pattern) matches pattern (like /(pattern)/)
!(pattern) matches anything except the pattern (like /(?!pattern)/)
- pattern can be joined by
| (like /(foo|bar)/)
| Pattern | Matches | Does not match |
|---|
a+(xy) | axy, axyxy | a |
a*(xy) | a, axy, axyxy | |
a@(xy) | axy | a, axyxy |
a!(xy) | ax | axy, axyz |
a+(x|y*z) | axx, ayzxyzxx, axyAAAz | axy, a |