Regex-tester
Test reguliere expressies met live markering van matches en groepen
Over deze tool
Schrijf een patroon, plak voorbeeldtekst, en elke match wordt gemarkeerd terwijl je typt — met capture-groepen, benoemde groepen en matchposities eronder. De tester gebruikt de JavaScript-RegExp-engine, dus het gedrag komt exact overeen met wat Node.js en browsers doen, inclusief lookbehind, benoemde groepen en Unicode-eigenschapescapes.
Vlaggen zet je per letter aan (g, i, m, s, u, y, d) en het patroon wordt bij elke toetsaanslag gecompileerd; syntaxfouten verschijnen meteen met de eigen melding van de engine in plaats van pas na een klik op een knop. Patronen met lege matches zoals a* worden veilig afgehandeld en het aantal matches is begrensd op 10.000, zodat een verdwaalde .* het tabblad niet kan laten vastlopen.
Regex-dialecten verschillen per engine — een patroon dat hier werkt kan aanpassing nodig hebben voor PCRE, RE2 of de re-module van Python, vooral rond lookbehind-ondersteuning, possessieve kwantoren en inline-vlaggen.
Veelgestelde vragen
- Welke regex-smaak gebruikt deze tester?
- ECMAScript (JavaScript), zoals jouw eigen browser die implementeert. Hij ondersteunt lookahead, lookbehind, benoemde capture-groepen, backreferences en Unicode-eigenschapescapes zoals \p{Letter} (met de u-vlag). PCRE-only-syntaxis zoals possessieve kwantoren of recursie wordt niet ondersteund.
- Waarom matcht mijn patroon alles / niets?
- De twee klassieke oorzaken: een niet-geëscapet metateken (. matcht elk teken — escape het als \. voor een letterlijke punt), of een in gedachten ontbrekende g-vlag — deze tester vindt altijd alle matches, maar jouw code vindt alleen de eerste als g niet is gezet.
- Wat zijn benoemde capture-groepen?
- De syntaxis (?<naam>...) geeft een groep een label, zodat je matches op naam kunt uitlezen in plaats van op positie: match.groups.naam in JavaScript. Het groepenpaneel onder de matches toont per match zowel genummerde als benoemde captures.
- Draait een regex van hier ongewijzigd in Python of Go?
- Vaak wel, niet altijd. Tekenklassen, kwantoren en ankers zijn overdraagbaar; lookbehind, de syntaxis voor benoemde groepen (Python gebruikt (?P<naam>...)) en inline-vlaggen verschillen. De RE2-engine van Go weigert bovendien backreferences en lookaround volledig.