Skip to content

Regex-tokens uitgelegd

Elke kern-token van regex: ankers, tekenklassen, kwantoren, groepen en flags. Wat elk van ze betekent, met een concrete match. De snelle naslag die hoort bij de tool Regex Tester.

Regex-tokens stapelen: zet een anker, een tekenklasse en een kwantor op elkaar om een pattern te bouwen. ^ pinnt aan een begin, \d matcht een cijfer en {2,4} bepaalt hoe vaak. Combineer ze als ^\d{2,4}$ om een hele string van twee tot vier cijfers te matchen. Lees een pattern van links naar rechts, één token per keer. Met de tool Regex Tester probeer je elk van deze tokens live tegen je eigen tekst.

Referentietabel · 55 itemsOpen de regex-tester-tool →
55 of 55 rows
Ankers
Matcht de positie aan het begin van de string, of het begin van een regel met de flag m.^He → He
Matcht de positie aan het einde van de string, of het einde van een regel met de flag m.lo$ → lo
Matcht een woordgrens, de positie tussen een woordteken en een niet-woordteken.\bcat\b → cat
Matcht een niet-woordgrens, de positie tussen twee woordtekens of twee niet-woordtekens.\Bar → ar
Tekenklassen
Matcht elk willekeurig enkel teken behalve een regeleinde, tenzij de flag s is gezet.a.c → abc
Matcht elk cijfer, 0 tot en met 9.\d → 7
Matcht elk teken dat geen cijfer is.\D → a
Matcht elk woordteken: een letter, een cijfer of een underscore.\w → _
Matcht elk teken dat geen woordteken is.\W → !
Matcht elk whitespace-teken: een spatie, een tab of een regeleinde.a\sb → a b
Matcht elk teken dat geen whitespace is.\S → a
Matcht elk van de tekens die tussen de haken staan.[aeiou] → e
Matcht elk teken dat niet een van de tekens tussen de haken is.[^aeiou] → s
Matcht elk enkel teken in het opgegeven bereik, van a tot z.[a-z] → m
Matcht elk enkel teken inclusief een regeleinde, het gebruikelijke idioom voor een punt die regels overspant.[\s\S] → \n
Matcht elke unicode-letter uit elk schrift, wanneer de flag u is gezet.\p{L} → é
Matcht elk unicode-nummerteken uit elk schrift, wanneer de flag u is gezet.\p{N} → ٣
Escape: matcht één regeleindeteken (line feed).\n → line feed
Escape: matcht één tabteken.\t → tab
Escape: matcht één carriage return-teken.\r → carriage return
Matcht het enkele teken met de opgegeven tweecijferige hexadecimale code.\x41 → A
Matcht het enkele teken met het opgegeven hexadecimale code point, wanneer de flag u is gezet.\u{1F600} → 😀
Klasse-intersectie, met de flag v: matcht tekens die in beide sets tegelijk zitten.[[a-z]&&[^aeiou]] → t
Kwantoren
Matcht het vorige token nul of meer keer.ab* → abbb
Matcht het vorige token één of meer keer.a+ → aaa
Matcht het vorige token nul of één keer, waardoor het optioneel wordt.colou?r → color
Matcht het vorige token precies n keer.a{3} → aaa
Matcht het vorige token n of meer keer.a{2,} → aaaa
Matcht het vorige token tussen n en m keer, beide grenzen inbegrepen.a{2,4} → aaa
Luie kwantor: matcht het vorige token nul of meer keer en neemt daarbij zo weinig mogelijk.<.*?> on <a><b> → <a>
Luie kwantor: matcht het vorige token één of meer keer en neemt daarbij zo weinig mogelijk.\d+? on 123 → 1
Luie kwantor: matcht het vorige token nul of één keer, met voorkeur voor nul.ab?? on ab → a
Luie kwantor: matcht het vorige token tussen n en m keer en neemt daarbij zo weinig mogelijk.a{1,3}? on aaa → a
Possessieve kwantor (PCRE): matcht het vorige token nul of meer keer en houdt het vast, zonder ooit terug te backtracken om andere verdelingen te proberen..*+a on aaa → no match
Groepen en alternatie
Een capturing group: matcht de reeks en onthoudt die voor backreferences.(ab)+ → abab
Een non-capturing group: matcht de reeks zonder die te onthouden.(?:ab)+ → abab
Positieve lookahead: matcht als de volgende tekens abc zijn, zonder ze te consumeren.a(?=b) → a
Negatieve lookahead: matcht als de volgende tekens niet abc zijn, zonder ze te consumeren.a(?!b) → a
Backreference: matcht exact de tekst die capturing group 1 vastlegde.(a)\1 → aa
Alternatie: matcht ofwel de expressie vóór ofwel die na de pipe.cat|dog → dog
Een benoemde capturing group: matcht de reeks en onthoudt die onder de opgegeven naam.(?<year>\d{4}) → year = 2026
Positieve lookbehind: matcht als de voorafgaande tekens abc zijn, zonder ze te consumeren.(?<=a)b → b
Negatieve lookbehind: matcht als de voorafgaande tekens niet abc zijn, zonder ze te consumeren.(?<!a)b → b
Benoemde backreference: matcht exact de tekst die de benoemde groep vastlegde.(?<w>\w+) \k<w> → the the
Atomaire groep (PCRE): matcht de reeks één keer en backtrackt er nooit meer in.(?>a+)ab on aab → no match
Branch reset (PCRE): alternatie waarbij elke branch dezelfde groepsnummers hergebruikt.(?|(cat)|(dog)) → \1 = dog
Flags
Globale flag: vind elke match in de string, niet alleen de eerste./a/g on aaa → a, a, a
Flag zonder hoofdlettergevoeligheid: negeer het verschil tussen hoofd- en kleine letters bij het matchen./Hi/i → hi
Multiline-flag: behandel ^ en $ als het begin en einde van elke regel./^a/m matches at the start of each line
Dotall-flag: laat de punt ook een regeleinde matchen./a.b/s → a\nb
Unicode-flag: behandel een pattern en de invoer als unicode-code points./\u{1F600}/u → 😀
Sticky-flag: match alleen op de exacte positie die lastIndex aangeeft./ab/y matches only at lastIndex
Indices-flag: voegt de begin- en eindpositie van elke match toe aan het resultaat./b/d on abc → indices [1, 2]
Flag voor unicode-sets: een strengere u die ook set-operaties binnen een klasse toestaat./[a-z&&[^aeiou]]/v → t
Uitgebreide flag (PCRE): negeert niet-ge-escapete whitespace en #-commentaren binnen het pattern./a b/x → ab