Mit Zeichenklassen können Sie eine Liste von Zeichen angeben, die einer Position in einem regulären Ausdruck entsprechen. Zeichenklassen werden durch eckige Klammern (
[
und
]
) definiert. Mit dem folgenden regulären Ausdruck wird beispielsweise eine Zeichenklasse definiert, die
bag
,
beg
,
big
,
bog
oder
bug
entspricht:
/b[aeiou]g/
Escape-Sequenzen in Zeichenklassen
Die meisten Metazeichen und Metasequenzen mit einer besonderen Bedeutung in regulären Ausdrücken haben diese Bedeutung
nicht
in Zeichenklassen. In einem regulären Ausdruck wird das Sternchen beispielsweise für eine Wiederholung verwendet. Dies ist nicht der Fall, wenn das Sternchen in einer Zeichenklasse verwendet wird. Die folgende Zeichenklasse entspricht tatsächlich dem Sternchen sowie allen anderen aufgeführten Zeichen:
/[abc*123]/
Die drei in der folgenden Tabelle aufgeführten Zeichen werden in Zeichenklassen jedoch als Metazeichen mit einer besonderen Bedeutung verwendet:
Metazeichen
|
Bedeutung in Zeichenklassen
|
]
|
Definiert das Ende der Zeichenklasse.
|
-
|
Definiert einen Zeichenbereich (weiter Informationen finden Sie im folgenden Abschnitt „Zeichenbereiche in Zeichenklassen”).
|
\
|
Definiert Metasequenzen und hebt die besondere Bedeutung von Metazeichen auf.
|
Damit diese Zeichen als normale Zeichen erkannt werden (ohne besondere Metazeichenbedeutung), muss vor dem entsprechenden Zeichen ein umgekehrter Schrägstrich als Escape-Zeichen eingefügt werden. Der folgende reguläre Ausdruck enthält beispielsweise eine Zeichenklasse, die einem der vier Symbole (
$
,
\
,
]
oder
-
) entspricht:
/[$\\\]\-]/
Neben den Metazeichen, die ihre besondere Bedeutung beibehalten, werden die folgenden Metasequenzen in Zeichenklassen als Metasequenzen verwendet:
Metasequenz
|
Bedeutung in Zeichenklassen
|
\n
|
Entspricht einem Zeilenvorschubzeichen.
|
\r
|
Entspricht einem Wagenrücklaufzeichen.
|
\t
|
Entspricht einem Tabulatorzeichen.
|
\u
nnnn
|
Entspricht dem Zeichen mit dem angegebenen Unicode-Codepunktwert (definiert durch die Hexadezimalzahl
nnnn
).
|
\\x
nn
|
Entspricht dem Zeichen mit dem angegebenen ASCII-Wert (definiert durch die Hexadezimalzahl
nn
).
|
Die anderen Metasequenzen und Metazeichen in regulären Ausdrücken werden innerhalb von Zeichenklassen wie normale Zeichen behandelt.
Zeichenbereiche in Zeichenklassen
Mit einem Bindestrich können Sie einen Bereich von Zeichen angeben, z. B.
A-Z
,
a-z
oder
0-9
. Diese Zeichen müssen einen gültigen Zeichenbereich im Zeichensatz bilden. Die folgende Zeichenklasse entspricht beispielsweise allen Zeichen im Bereich
a-z
oder allen Ziffern:
/[a-z0-9]/
Mit dem ASCII-Zeichencode
\\x
nn
können Sie zudem einen Bereich durch ASCII-Werte angeben. Die folgende Zeichenklasse entspricht beispielsweise allen Zeichen im Zeichensatz der ASCII-Sonderzeichen (z. B.
ä
oder
ß
):
\\x
Negierte Zeichenklassen
Wenn Sie ein Caretzeichen (
^
) am Anfang einer Zeichenklasse verwenden, wird diese Klasse negiert, d. h., alle nicht aufgeführten Zeichen werden als Entsprechungen erkannt. Die folgende Zeichenklasse entspricht allen Zeichen,
mit Ausnahme
von kleingeschriebenen Buchstaben (
a–z
–) und Ziffern:
/[^a-z0-9]/
Sie müssen das Caretzeichen (
^
) am
Anfang
einer Zeichenklasse eingeben, um eine Negation anzugeben. Andernfalls wird das Caretzeichen einfach zu den Zeichen in der Zeichenklasse hinzugefügt. Die folgende Zeichenklasse entspricht beispielsweise einem Zeichen in einem Bereich mit bestimmten Symbolzeichen, einschließlich des Caretzeichens:
/[!.,#+*%$&^]/