Du använder teckenklasser för att ange en teckenlista som ska matcha en position i det reguljära uttrycket. Du definierar teckenklasser med hakparenteser (
[
och
]
). I följande reguljära uttryck definieras en teckenklass som matchar
bag
,
beg
,
big
,
bog
eller
bug
:
/b[aeiou]g/
Escape-sekvenser i teckenklasser
De flesta metatecken och metasekvenser som vanligtvis har en speciell betydelse i ett reguljärt uttryck har
inte
samma betydelse i en teckenklass. I ett reguljärt uttryck används exempelvis asterisken för att repetitioner, men detta gäller inte när asterisken används i en teckenklass. Följande teckenklass matchar asterisken litteralt, men även övriga listade tecken:
/[abc*123]/
De tre tecknen i tabellen nedan fungerar emellertid som metatecken med en speciell betydelse i teckenklasser:
Metatecken
|
Betydelse i teckenklasser
|
]
|
Definierar slutet på teckenklassen.
|
-
|
Definierar ett teckenintervall (se avsnittet ”Teckenintervall i teckenklasser”).
|
\
|
Definierar metasekvenser och upphäver den speciella betydelsen för metatecknen.
|
För att dessa tecken ska identifieras som litteraler (utan den speciella metateckenbetydelsen) måste du före tecknen skriva ett omvänt snedstreck som escape-tecken. I följande reguljära uttryck finns en teckenklass som matchar dessa fyra symboler(
$
,
\
,
]
eller
-
):
/[$\\\]\-]/
Förutom metatecknen som behåller specialbetydelsen fungerar följande metasekvenser som metasekvenser inom teckenklasser:
Metasekvens
|
Betydelse i teckenklasser
|
\n
|
Matchar ett radmatningstecken.
|
\r
|
Matchar ett vagnreturstecken.
|
\t
|
Matchar ett tabbtecken.
|
\u
nnnn
|
Matchar tecknet med den angivna Unicode-kodpunkten såsom den uttrycks hexadecimalt med
nnnn
.
|
\\x
nn
|
Matchar tecknet med det angivna ASCII-värdet såsom det uttrycks hexadecimalt med
nn
.
|
Andra reguljära uttryck för metasekvenser och metatecken hanteras i en teckenklass som vanliga tecken.
Teckenintervall i teckenklasser
Använd bindestreck för att ange teckenintervall, t.ex.
A-Z
,
a-z
eller
0-9
. Dessa tecken måste utgöra ett giltigt intervall i teckenuppsättningen. Följande teckenklass matchar alla tecken i intervallet
a-z
och alla siffror:
/[a-z0-9]/
Du använder ASCII-teckenkoden
\\x
nn
för att ange ett intervall för ASCII-värden. Följande teckenklass matchar alla tecken från en uppsättning av den utökade ASCII-teckenuppsättningen (t.ex.
é
och
ê
):
\\x
Negerade teckenklasser
När du använder ett cirkumflex (
^
) i början av en teckenklass kommer klassen att negeras, dvs. alla tecken som inte finns med i listan betraktas som en matchning. Följande teckenklass matchar alla tecken
med undantag för
ett gement tecken (
a–z
) eller en siffra:
/[^a-z0-9]/
Du måste skriva cirkumflexet (
^
) i
början
av en teckenklass för att indikera negationen. Du kan annars lägga till cirkumflexet till tecknen i teckenklassen. Följande teckenklass matchar symbolerna, inklusive cirkumflexet:
/[!.,#+*%$&^]/