onlinetools.dev

Regex-tester

Test reguliere expressies met live markering van matches en groepen

Draait lokaal
loading…
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.
Gerelateerde tools