Describes ranges of symbols
You can enumerate symbols explicitly
/[abc]/ # 'a' or 'b' or 'c'
Or use ranges
/[a-z]/ # from 'a' to 'z'
It is possible to combine ranges and single symbols
/[a-cz]/ # 'a' or 'b' or 'c' or 'z'
Leading dash (-
) is treated as charachter
/[-a-c]/ # '-' or 'a' or 'b' or 'c'
Classes can be negative when preceding symbols with ^
/[^a-c]/ # Not 'a', 'b' or 'c'
There are some shortcuts for widespread classes and special charachters, plus line endings
^ # Start of line
$ # End of line
\A # Start of string
\Z # End of string, excluding any new line at the end of string
\z # End of string
. # Any single character
\s # Any whitespace character
\S # Any non-whitespace character
\d # Any digit
\D # Any non-digit
\w # Any word character (letter, number, underscore)
\W # Any non-word character
\b # Any word boundary
\n
will be understood simply as new line
To escape any reserved charachter, such as /
or []
and others use backslash (left slash)
\\ # => \
\[\] # => []