Skip to content

Reguliere Expressies Spiekbriefje

Tekens matchen

[abc] Matcht elk afzonderlijk teken uit a, b of c
[^abc] Matcht geen van de tekens a, b of c. De “^” werkt alleen als het het eerste teken is
[a-g] Matcht elk afzonderlijk teken in het bereik a-g
[^a-g] Matcht geen enkel teken in het bereik a-g
[H-N] Matcht elk afzonderlijk teken in het bereik H-N
[0-9] Matcht elk afzonderlijk cijfer in het bereik 0-9
[a-gH-N] Matcht elk afzonderlijk teken in het bereik a-g of H-N
Wildcards:
. [^\n\r], matcht elk teken behalve regeleinden
\s Witruimte: regeleinde, tab, spatie, etc.
\S [^\s] (Geen witruimte)
\d Cijfer: [0-9]
\D [^\d] (Geen cijfer)
\w Woordteken: [0-9A-Za-z_]
\W [^\w] (Geen woordteken)

Groepen matchen

(a b)
(…) Capture-groep
(?:…) Niet-capture-groep
(?<name>…) of (?’name’…) Benoemde capture-groep, “name” kan worden aangepast
(?(condition)true_regex false_regex)

group(0) wordt gebruikt om de volledige gematchte string op te halen, terwijl group(>0) sub-capture-groepen uit de volledige string kan extraheren.

Opmerking: Benoemde capture-groepen worden ondersteund sinds Java 1.7 (door de string “name” als argument aan de group-methode door te geven). JS en Python ondersteunen benoemde capture-groepen momenteel nog niet standaard.

Frequentiebereik (Quantificatoren)

{3} Het voorgaande item komt precies 3 keer voor, equivalent aan {3,3}
{3,6} Het voorgaande item komt 3 tot 6 keer voor
{3,} Het voorgaande item komt minstens 3 keer voor
{0,6} Het voorgaande item komt maximaal 6 keer voor
Wildcards:
* {0,} (Nul of meer)
+ {1,} (Eén of meer)
? {0,1} (Nul of één)
\w* Greedy modus (Gretig)
\w*? Non-greedy modus

Anchors (Positie-indicatoren)

^ Begin van de string
$ Einde van de string
\b Boundary, woordgrens
\B Geen woordgrens
Lookaround-assertions:
(?=exp) Positieve vooruitblik (lookahead, suffix is exp)
(?<=exp) Positieve terugblik (lookbehind, prefix is exp)
(?!exp) Negatieve vooruitblik (geen suffix exp)
(?<!exp) Negatieve terugblik (geen prefix exp)

\b(\w+)\b is equivalent aan (?<=\W?)(\w+)(?=\W?)