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 |
Comments
#-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 |