👤 Pro — geen advertentiesPro
// patroon ↔ matches

Regex-tester

Typ een patroon en wat tekst — matches worden live gemarkeerd, met capture-groepen eronder vermeld.

Gratis — onbeperkt gebruik.

Matches

Een patroon stukje bij beetje opbouwen

De snelste weg naar een werkende reguliere expressie is beschamend ongeglamoureus: begin met de letterlijke tekst te typen die je wilt vinden, kijk hem oplichten, en generaliseer hem pas daarna stap voor stap — verwissel de cijfers voor een klasse zoals [0-9]+, sta optionele delen toe met een vraagteken, anker hem met ^ of $ zodra het midden zich gedraagt. Omdat matches live bijwerken terwijl je typt, geeft elke kleine wijziging directe feedback, en een fout toont zich op het moment dat je hem maakt in plaats van drie bewerkingen later. Even belangrijk is wat je in het tekstvak plakt: neem regels op die het patroon niet zou moeten matchen, niet alleen die het wel zou moeten. Een patroon dat alleen tegen brave voorbeelden getest is, heeft de gewoonte om de helft van het document te matchen zodra het echte data tegenkomt.

Capture-groepen doen het extraheerwerk

Zet een deel van een patroon tussen haakjes en het wordt een capture-groep — het stukje van elke match dat je eigenlijk wilt behouden. Een patroon zoals ([0-9]{2}):([0-9]{2}) uitgevoerd tegen een pagina tekst vindt niet zomaar tijden; de tabel onder de tekst vermeldt elke match met groep één die de uren bevat en groep twee de minuten, plus de positie waar hij gevonden is. Voeg de g-flag toe en je verzamelt elk voorkomen in de tekst in plaats van te stoppen bij de eerste. Dit is de eerlijke kern van het meeste alledaagse regexwerk: geen slimme validatie, maar het uittrekken van gestructureerde waarden — datums, ordernummers, prijzen — uit tekst die nooit bedoeld was om gestructureerd te zijn.

Als een patroon blijft hangen — en het vangnet

Sommige patronen zijn valstrikken. Nest de ene open-eind-quantifier in de andere — de klassieke vorm is (a+)+ — en bij de verkeerde invoer probeert de engine een exponentieel aantal manieren om de tekst op te splitsen voordat hij opgeeft. Op de meeste sites bevriest dat het hele tabblad; hier draait het matchen weg in een achtergrond-worker die na twee seconden gestopt wordt, zodat je een uitleg krijgt in plaats van een dode pagina. De remedie is bijna altijd het patroon specifieker te maken, zodat de engine minder manieren heeft om dezelfde tekst op te delen. Eén eerlijke kanttekening: deze tester gebruikt JavaScripts eigen engine — ideaal als je patroon voor een script of webpagina bestemd is, maar Python en PCRE verschillen op een paar punten, dus test ook in de uiteindelijke taal. Zijn de waarden die je extraheert bestemd voor een link of een querystring, dan is de URL-encoder de logische volgende stop.

Hoe deze tester werkt

Je patroon wordt tegen de tekst uitgevoerd met de eigen reguliere-expressie-engine van JavaScript — dezelfde engine die je code daadwerkelijk gebruikt als dit voor een script of webpagina is. Matches worden in de tekst gemarkeerd en eronder vermeld met hun capture-groepen.

Welke flags worden ondersteund?

g (global — alle matches vinden, niet alleen de eerste), i (hoofdletterongevoelig) en m (multiline, zodat ^ en $ regelgrenzen matchen) — de flags die je in de praktijk gebruikt.

Waarom geeft mijn patroon een foutmelding?

De regex-syntax van JavaScript verschilt op een paar punten van andere talen (PCRE, Python) — een niet-geëscaped speciaal teken of een niet-ondersteunde constructie geeft een syntaxfout, die direct getoond wordt in plaats van stilzwijgend een verkeerd resultaat.

Wordt mijn tekst ergens naartoe verstuurd?

Nee — het matchen gebeurt volledig in je browser met pure JavaScript. Er wordt niets geüpload.

Convertburda — universele conversies