![]() | ![]() | |
![]() | ||
![]() |
A character set starts with '[' and ends at non-escaped ']' that is not part of a POSIX character set specifier and that does not follow immediately after '['.
The following characters have a special meaning and need to be escaped if meant literally:
- - (minus sign)
A range operator, except immediately after '[', where it loses its special meaning.
- ^
If immediately after the starting '[', denotes a complement: the whole character set will be complemented. Otherwise literal '^'.
- [:alnum:]
Characters for which 'isalnum' returns true.
- [:alpha:]
Characters for which 'isalpha' returns true.
- [:cntrl:]
Characters for which 'iscntrl' returns true.
- [:digit:]
Characters for which 'isdigit' returns true.
- [:graph:]
Characters for which 'isgraph' returns true.
- [:lower:]
Characters for which 'islower' returns true.
- [:print:]
Characters for which 'isprint' returns true.
- [:punct:]
Characters for which 'ispunct' returns true.
- [:space:]
Characters for which 'isspace' returns true.
- [:upper:]
Characters for which 'isupper' returns true.
- [:xdigit:]
Characters for which 'isxdigit' returns true.
Example: [[:xdigit:]XY]
is typically equivalent to [0123456789ABCDEFabcdefXY]
.
It is also possible to include the predefined escaped character sets into a newly defined one, so [\d\s]
matches digits and whitespace characters.
Also, escape sequences resulting in literals work inside character sets.