Bracketed Character Classes
An enumerated list of characters in square brackets is called a bracketed character
class and matches any one of the characters in the list. For
example, [aeiouy] matches a letter
that can be a vowel in English. To match a right square bracket, either
backslash it or place it first in the list.
Character ranges may be indicated using a hyphen[95] and the a–z notation.
Multiple ranges may be combined; for example, [0–9a–fA–F] matches one hex “digit”. You may
use a backslash to protect a hyphen that would otherwise be interpreted
as a range separator, or just put it at the beginning or end of the
class (a practice which is arguably less readable but more
traditional).
A caret (or circumflex, or hat, or up arrow) at the front of the
bracketed character class inverts the class, causing it to match any
single character not in the list. (To match a
caret, either don’t put it first or, better, escape
it with a backslash.) For example, [^aeiouy] matches any character that isn’t a vowel. Be careful with character class negation, though, because the universe of characters is expanding. For example, that bracketed character class matches consonants—and also matches spaces, newlines, and anything (including vowels) in Cyrillic, Greek, or nearly any other script, not to mention every ideograph in Chinese, Japanese, and Korean. And someday maybe even Cirth and Tengwar. (Linear B and Etruscan, for sure.) So it might be better to specify your consonants explicitly, such ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access