Tekenklassen gebruikt u om een lijst op te geven met tekens die overeen moeten komen met een positie in de reguliere expressie. Tekenklassen definieert u door middel van vierkante haakjes (
[
en
]
). De volgende reguliere expressie definieert bijvoorbeeld een tekenklasse die overeenkomt met
bag
,
beg
,
big
,
bog
of
bug
:
/b[aeiou]g/
Escape-reeksen in tekenklassen
De meeste metatekens en metareeksen, die normaal gesproken een speciale betekenis hebben binnen een reguliere expressie,
hebben niet
dezelfde betekenis binnen een tekenklasse. In een reguliere expressie bijvoorbeeld wordt de asterisk gebruikt voor herhalingen; dit is echter niet het geval wanneer de asterisk binnen een tekenklasse verschijnt. De volgende tekenklasse komt letterlijk overeen met de asterisk, samen met de andere opgenomen tekens:
/[abc*123]/
De drie tekens echter die zijn opgenomen in de volgende tabel, functioneren als metatekens met een speciale betekenis in tekenklassen:
Metateken
|
Betekenis in tekenklassen
|
]
|
Definieert het einde van de tekenklasse.
|
-
|
Hiermee wordt een tekenbereik gedefinieerd (zie de volgende sectie, Tekenbereiken binnen tekenklassen).
|
\
|
Hiermee worden metareeksen gedefinieerd en wordt de speciale betekenis van metatekens ongedaan gemaakt.
|
Om ervoor te zorgen dat deze tekens worden herkend als letterlijke tekens (zonder de speciale betekenis behorend bij het metateken), laat u het teken voorafgaan door een backslash. De volgende reguliere expressie bijvoorbeeld bevat een tekenklasse die overeenkomt met elk van de volgende vier symbolen (
$
,
\
,
]
of
-
):
/[$\\\]\-]/
Naast de metatekens, die hun speciale betekenis behouden, functioneren de volgende metareeksen als metareeksen binnen tekenklassen:
Metareeks
|
Betekenis in tekenklassen
|
\n
|
Komt overeen met een nieuwe-regelteken.
|
\r
|
Komt overeen met een Return-teken.
|
\t
|
Komt overeen met een tab-teken.
|
\u
nnnn
|
Komt overeen met het Unicode-teken met de tekencode aangeduid door het hexadecimale getal
nnnn
).
|
\\x
nn
|
Komt overeen met de ASCII-waarde aangeduid door het hexadecimale getal
nn
).
|
Andere metareeksen en metatekens binnen reguliere expressies worden behandeld als normale tekens binnen een tekenklasse.
Tekenbereiken binnen tekenklassen
Gebruik het koppelteken om een tekenbereik aan te geven, zoals
A-Z
,
a-z
of
0-9
. Deze tekens moeten een geldig bereik binnen de tekenset vormen. De volgende tekenklasse komt bijvoorbeeld overeen met elk van de tekens binnen het bereik
a-z
of elk willekeurig cijfer:
/[a-z0-9]/
U kunt ook de ASCII-tekencode
\\x
nn
gebruiken om een bereik met ASCII-waarde op te geven. De volgende tekenklasse komt overeen met elk teken uit een uitgebreide set ASCII-tekens (zoals
é
en
ê
):
\\x
Genegeerde tekenklassen
Wanneer u een invoegpunt gebruikt (
^
) aan het begin van een tekenklasse, wordt deze klasse door dit teken genegeerd: elk willekeurig teken dat niet is opgenomen, wordt als overeenkomend beschouwd. De volgende tekenklasse komt overeen met elk willekeurig teken
behalve
voor een kleine letter (
az
–) of een cijfer:
/[^a-z0-9]/
Typ het invoegteken (
^
) aan het
begin
van een tekenklasse om de negatie aan te geven. Anders voegt u het invoegteken eenvoudig toe aan de tekens in de tekenklasse. De volgende tekenklasse bijvoorbeeld komt overeen met elk willekeurig aantal symbooltekens, waaronder de invoegpunt:
/[!.,#+*%$&^]/