Naar de inhoud
Quaestio

Regex-tester

Voer een patroon in en een tekst om het op te testen, en elke overeenkomst wordt gemarkeerd terwijl je typt.

Flags

Voorbeelden

Gebruik $1 of $<name> voor groepen, $& voor de hele overeenkomst en $$ voor een dollarteken.

Veelgebruikte tekens
.
elk teken behalve een regeleinde
\d
een cijfer 0–9
\w
een letter a–z, cijfer of liggend streepje
\s
spatie, tab of regeleinde
\D \W \S
het tegenovergestelde van \d, \w en \s
\b
grens tussen een woordteken en een ander teken
^
begin van de tekst, of van de regel met m
$
einde van de tekst, of van de regel met m
[abc] [a-z]
een van de tekens, of een teken in het bereik
[^abc]
geen van de tekens
a|b
a of b
(…)
opvangende groep
(?:…)
niet-opvangende groep
(?<name>…)
benoemde groep
\1 \k<name>
dezelfde tekst als groep 1 of als de groep met de naam name
*
nul of meer keer
+
een of meer keer
?
nul of één keer
{3} {2,5} {2,}
precies 3, 2 tot 5 of minstens 2 keer
*? +? ??
zo weinig mogelijk keer
(?=…)
gevolgd door
(?!…)
niet gevolgd door
(?<=…) (?<!…)
voorafgegaan door, niet voorafgegaan door
\p{L}
een letter in elk schrift (vereist u of v)
Insluiten

Deze tool op je eigen site insluiten

Kopieer de code en plak die waar de tool moet verschijnen, bijvoorbeeld in een blogbericht of op een schoolpagina. Het is gratis, het kader heeft geen advertenties en de tool rekent in de browser van de bezoeker.

Zo werkt het

Een reguliere expressie is een patroon dat tekst beschrijft. \d+ betekent een of meer cijfers, [a-z] een letter van a tot z en ^ het begin van de tekst. Het patroon wordt van links naar rechts op de tekst geprobeerd, en elke plek waar het past is een overeenkomst.

De tester gebruikt de engine van je eigen browser, dus de variant van reguliere expressies die de ECMAScript-standaard voor JavaScript vastlegt. Die verschilt op een paar punten van PCRE, Python en .NET: er zijn bijvoorbeeld geen possessieve kwantoren of atomaire groepen, en een lookbehind mag elke lengte hebben.

Flags veranderen hoe het patroon wordt gelezen. g vindt alle overeenkomsten in plaats van alleen de eerste, i negeert het verschil tussen hoofdletters en kleine letters, m laat ^ en $ voor elke regel gelden en s laat de punt ook regeleinden matchen. u leest de tekst als Unicode-tekens in plaats van UTF-16-eenheden, en v is een strengere versie van u uit ECMAScript 2024 met verzamelingsbewerkingen in tekenklassen. y eist dat elke overeenkomst precies begint waar de vorige eindigde, en d legt de posities van groepen vast.

Haakjes vangen op wat ze hebben gevonden en worden genummerd op volgorde van hun openingshaakje, van links af. (?<name>…) geeft een groep een naam, en (?:…) groepeert zonder op te vangen. In de vervanging staat $1 voor groep 1, $<name> voor een benoemde groep, $& voor de hele overeenkomst en $$ voor een dollarteken. Zonder de flag g wordt alleen de eerste overeenkomst vervangen.

Sommige patronen duren extreem lang, zoals (a+)+$ op een lange reeks a gevolgd door een ander teken. De engine probeert dan combinaties waarvan het aantal exponentieel groeit met de lengte van de tekst, catastrofale backtracking genoemd. Hier draait de zoekopdracht in een aparte thread die na twee seconden wordt gestopt, zodat de pagina niet vastloopt. In een programma op een server kan hetzelfde patroon een beveiligingsrisico worden (ReDoS).

Posities worden geteld in UTF-16-eenheden, net als in JavaScript, dus een emoji telt als twee. Een lege overeenkomst, zoals ^ of \b, wordt aangegeven met een dun streepje. Je tekst verlaat nooit je browser.

Bronnen

Zo worden de tools gecontroleerd