Wat is deze tool?
Een reguliere expressie (regex) is een compacte patroontaal om tekst te vinden, te valideren en eruit te halen: een e-mailpatroon kan formulierinvoer valideren, \d{4}-\d{2}-\d{2} vindt datums, en capture groups halen precies de onderdelen eruit die je nodig hebt. Bijna elke programmeertaal en editor ondersteunt regex.
Deze tester gebruikt de JavaScript regex-engine — dezelfde die in Node.js en elke browser draait — dus patronen die je hier bouwt gedragen zich identiek in je JavaScript/TypeScript-code. De meeste patronen werken ook ongewijzigd in Python, Java en Go.
Waarom gebruiken?
- Live feedback: matches worden geel gemarkeerd terwijl je het patroon typt.
- Capture groups per match weergegeven — zie precies wat $1 en $2 zullen bevatten.
- Volledige ondersteuning voor flags: g (alle matches), i (hoofdletterongevoelig), m (multiline), s (punt matcht ook newline), u (unicode).
- Duidelijke foutmeldingen wanneer het patroon een syntaxfout bevat.
- Gratis en privacyvriendelijk — patroon en tekst verlaten je browser nooit.
Hoe te gebruiken
- Typ je patroon tussen de twee /-tekens (je hoeft slashes zelf niet te escapen).
- Pas de flags aan in het kleine vak na de tweede / — de standaard g vindt alle matches.
- Plak je testtekst hieronder.
- Matches worden direct gemarkeerd; capture groups staan eronder vermeld.
- Als het patroon ongeldig is, legt de foutmelding uit wat er mis is.
Voorbeeld
Invoer
Patroon: (\w+)@(\w+)\.com
Testtekst: Neem contact op met alice@example.com of bob@test.comUitvoer
✓ 2 matches
#1 groepen: $1=alice $2=example
#2 groepen: $1=bob $2=testDe haakjes creëren capture groups die je als $1 en $2 kunt gebruiken in vervangingen.
Praktische tips
- E-mailinvoer valideren? ^[^\s@]+@[^\s@]+\.[^\s@]+$ is een tolerant patroon dat duidelijke typefouten opvangt zonder geldige-maar-ongebruikelijke adressen af te wijzen — volledige RFC 5322-compliance vereist een bibliotheek, geen one-liner.
- Querystring-parameters uit een URL halen: [?&]([^=]+)=([^&]*) met de g-flag, lees vervolgens per match $1/$2 in plaats van handmatig te splitsen op & en =.
- Ga je een patroon gebruiken in .replace()? Test het eerst hier — wat gemarkeerd wordt, is precies wat .replace() zal aanpassen, inclusief capture groups.
- Meerregelige logs verwerken (een tijdstempel matchen aan het begin van elke regel)? Voeg de m-flag toe zodat ^ en $ per regel ankeren in plaats van op de hele string.
- Een patroon uit Python of PHP gekopieerd en het matcht hier niet? Controleer op benoemde groepen (?P<naam>...) — JavaScript gebruikt (?<naam>...), zonder P — of bezitterige kwantoren (++, *+), die niet bestaan in JavaScript-regex.
Een JavaScript regex tester, geen generieke
Deze tool gebruikt de ingebouwde RegExp-engine van JavaScript — precies het codepad achter str.match(patroon) of patroon.test(str) in een browserconsole of Node.js. Dat verschilt van testen tegen PCRE (wat PHP gebruikt, en wat veel "universele" regex-testers standaard doen) of de re-module van Python: JavaScript heeft geen bezitterige kwantoren of atomaire groepen, en benoemde capture groups gebruiken (?<naam>...) in plaats van (?P<naam>...) uit PCRE/Python.
Ga je een patroon gebruiken in JS of TypeScript — formuliervalidatie, een route matcher, een logparser? Testen doe je hier zonder risico op afwijkende varianten: wat op deze pagina gemarkeerd wordt, is exact wat new RegExp(patroon, flags) tijdens runtime matcht.
Waar dit past in de praktijk
Een regextest staat zelden op zichzelf. Het gebruikelijke verloop: bevestig het patroon hier, voer de daadwerkelijke .replace() uit in je code, en vergelijk daarna de tekst voor en na om te controleren dat de vervanging precies deed wat je verwachtte, en niets meer.
Gestructureerde data extraheren met capture groups mondt vaak direct uit in JSON — formatteer de geëxtraheerde output om te controleren of die geparsed werd zoals je verwachtte.
Veelgestelde vragen
Welke regex-variant gebruikt deze tester?
JavaScript (ECMAScript), de engine in elke browser en Node.js. De kernsyntax is overdraagbaar, maar sommige functies verschillen per taal — bijvoorbeeld lookbehind-ondersteuning en de syntax van benoemde groepen verschillen in Python en Java.
Waarom vindt mijn patroon alleen de eerste match?
De g-flag (global) ontbreekt. Zonder g stopt een regex na de eerste match. Deze tool gebruikt standaard g — controleer of je die niet hebt verwijderd.
Waarom matcht . niet met mijn regeleinden?
Standaard matcht . elk teken behalve regeleinden. Voeg de s-flag toe (dotall) om . ook regeleinden te laten matchen, of gebruik [\s\S] als draagbaar alternatief.
Wat betekenen de resultaten van de capture groups?
Elk paar haakjes in je patroon vangt de tekst op die het matchte. $1 is de eerste groep, $2 de tweede, enzovoort — dit zijn de waarden waarnaar je verwijst bij vervangingen en extractiecode.
Waarom is mijn regex traag of loopt hij vast?
Waarschijnlijk catastrofale backtracking, veroorzaakt door geneste kwantoren zoals (a+)+ op niet-matchende invoer. Herschrijf het patroon om dubbelzinnige herhaling te vermijden. Deze tool stopt bij 1000 matches om responsief te blijven.