The escape character is a backslash (). With this you can escape metacharacters to
use them in their plain character form.
In the following examples, literal E
and F
denote any expression, whether a pattern or a character:
*
Match any string consisting of zero or more characters. The
characters can be any characters apart from slashes (/
). However, the asterisk does not match
a string if the string contains a dot (.
) as its first character, or if the
string contains a dot immediately after a slash. This means that
the asterisk cannot be used to match filenames that have a dot as
their first character.
If the previous character is a slash (/
), or if an asterisk (*
) is used to denote a match at the
beginning of a string, it does match a dot (.
).
That is, the asterisk (*
)
functions as normal in Unix shell fileglobs.
?
Match any single character except for a slash (/
). However, do not match a dot
(.
) if located at the beginning
of the string, or if the previous character is a slash (/
).
That is, the question mark (?
) functions as normal in Unix shell
fileglobs (at least in ZSH, although discarding the dot may not be
a standard procedure).
**/
Match any sequence of characters that is either empty, or
ends in a slash. However, the substring /.
is not allowed. This mimics the
**/
construct in ZSH. (Please
note that **
is equivalent to
*
.)
E#
Act as Kleene star, match E
zero or more times.
E##
Closure, match E
one or
more times.
(
Start a capturing
subexpression.
)
End a capturing subexpression.
E
|F
Disjunction, match either E
or F
(inclusive). E
is preferred if both match.
[
Start a character set (covered next).
3.144.48.135