Regex
Regex-tester
Test reguliere expressies live tegen je eigen tekst.
Over reguliere expressies
Een reguliere expressie (regex) is een patroon dat een verzameling tekenreeksen beschrijft — gebruikt om tekst te zoeken, te valideren of te extraheren. Deze tester voert de native regex-engine van JavaScript volledig in je browser uit, zodat je een patroon op echte tekst kunt uitproberen en precies kunt zien wat het matcht.
Kwantoren komen in twee smaken die makkelijk te verwarren zijn: gulzige (+, *, {2,5}) verbruiken zo veel mogelijk voordat ze terugkeren (backtracken) om de rest van het patroon te laten matchen, terwijl hun luie tegenhangers (+?, *?, {2,5}?) juist zo weinig mogelijk verbruiken. Tegen <a><b> met <.+> grijpt een gulzige match de hele string, terwijl <.+?> stopt bij de eerste >. Groepen hebben een vergelijkbare tweesplitsing: (...) legt de gematchte tekst vast voor latere verwijzing, terwijl (?:...) op dezelfde manier groepeert zonder vast te leggen — handig wanneer je de voorrang van groepering nodig hebt, maar niet de uitvoer ervan.
Waar je het tegenkomt
- Invoerformaten valideren zoals e-mailadressen, telefoonnummers of postcodes
- Gestructureerde waarden uit logregels of ongestructureerde tekst halen
- Een zoek-en-vervang-patroon schrijven voor een refactor over veel bestanden
- Debuggen waarom een patroon meer, of minder, matcht dan je verwachtte
Veelgestelde vragen
Waarom matcht mijn patroon maar één keer?
Zonder de g-vlag (global) stoppen de regex-methoden van JavaScript na de eerste match — dat is het daadwerkelijke gedrag dat je code ook zou zien, geen beperking van deze tool. Schakel g in om elke match te vinden.
Wordt wat ik hier typ naar een server gestuurd?
Nee. Matchen gebeurt volledig in je browser met de ingebouwde regex-engine van JavaScript — er wordt niets ergens naartoe verzonden, wat ook voorkomt dat een server wordt blootgesteld aan een opzettelijk traag "catastrofaal backtracking"-patroon.
Waarom loopt de pagina soms vast bij een patroon?
Bepaalde patronen, zoals geneste kwantoren als (a+)+, kunnen catastrofaal backtracken veroorzaken, waarbij de matchtijd exponentieel toeneemt met de invoerlengte. Als een patroon vasthangt, ligt dat aan het patroon zelf, niet aan deze tool — probeer een kortere testtekst of herschrijf het patroon om geneste herhaling te vermijden.
Wat is het verschil tussen gulzige en luie kwantoren?
Een gulzige kwantor (+, *, {2,5}) matcht eerst zo veel mogelijk tekst en keert alleen terug als de rest van het patroon daardoor faalt. Zijn luie tegenhanger, geschreven met een ? erachter (+?, *?), matcht juist zo weinig mogelijk en breidt alleen uit als het moet. Tegen <a><b> matcht het gulzige <.+> de hele string, terwijl het luie <.+?> stopt bij de eerste >. Grijp naar luie kwantoren wanneer "de kortst mogelijke match" is wat je daadwerkelijk wilt.