Rule | RegExp | Description |
---|---|---|
* |
^[^/]+/?$ |
one file/dir name |
** |
^.*/?$ |
multiple file/dir names |
/a?z/ |
^/a[^/]z/$ |
one character |
/a[0-9]z/ |
^/a[0-9]z/$ |
one digit |
/a[a-z]z/ |
^/a[a-z]z/$ |
one letter |
/a[01]z/ |
^/a[01]z/$ |
one character from (0,1) |
/a[!01]z/ |
^/a[^01]z/$ |
one any character, except from (0,1) |
Rule | RegExp | Character |
---|---|---|
a\\z |
/a\x5Cz/ |
\ |
a z |
/a\x09z/ |
TAB |
Rule | Meaning | Description |
---|---|---|
/name |
/name /name/ |
root level file/dir |
/name/ |
/name/ |
root level dir |
name |
/**/name /**/name/ |
any level file/dir |
name/ |
/**/name/ |
any level dir |
name/a |
/name/a /name/a/ |
file/dir (full path match) |
*.ext |
/**/*.ext /**/*.ext/ |
any level file/dir partially match |
a/ !a/b |
/**/a/ |
match dir itself (ignore other rules) |
/a/* !/a/b |
/a/** !/a/b !/a/b/ |
match dir contents, except rule (full path match) |
a/* !a/b |
/a/** !/**/a/b !/**/a/b/ |
worst rule |
# Matching rules cheat sheet:
#
# * ~ ^[^/]+/?$ one file/dir name
# ** ~ ^.*/?$ multiple file/dir names
# /n?m/ ~ ^/n[^/]m/$ one character
# /n[0-9]m/ ~ ^/n[0-9]m/$ one digit
# /n[a-z]m/ ~ ^/n[a-z]m/$ one letter
# /n[01]m/ ~ ^/n[01]m/$ one character from (0,1)
# /n[!01]m/ ~ ^/n[^01]m/$ one any character, except from (0,1)
# a\\z` ~ /a\x5Cz/ `\` character
# a z` ~ /a\x09z/ TAB character
# /name = /name, /name/ root level file/dir
# /name/ = /name/ root level dir
# name = /**/name, /**/name/ any level file/dir
# name/ = /**/name/ any level dir
# name/a = /name/a, /name/a/ file/dir (full path match)
# *.ext = /**/*.ext, /**/*.ext/ any level file/dir partially match
# a/, !a/b = /**/a/ match dir itself (ignore other rules)
# /a/*, !/a/b = /a/**, !/a/b, !/a/b/ match dir contents, except rule (full path match)
# a/*, !a/b = /a/**, !/**/a/b, !/**/a/b/ worst rule
#