Zo gebruik je deze tool
- Voer een reguliere expressie in het veld Patroon in, zonder de slashes eromheen.
- Vink de gewenste flags aan. Met g (global) worden alle matches gevonden in plaats van alleen de eerste.
- Plak de tekst waarin je wilt zoeken. Matches worden gemarkeerd en elk resultaat wordt weergegeven met de index en capture groups.
- Voer eventueel een vervanging in, zoals $2-$1, om het resultaat van String.replace te bekijken.
Hoe het werkt
De tester voert je patroon uit met het ingebouwde RegExp-object van de browser. De resultaten zijn dus precies zoals JavaScript-code (ECMAScript) in die browser ze zou opleveren. Andere talen gebruiken andere regex-varianten: PCRE (PHP), de module re van Python, Java en .NET ondersteunen functies die JavaScript niet heeft, zoals possessive quantifiers (a++), atomic groups ((?>…)), inline modifiers zoals (?i) en recursie. Ook verschillen ze op details, zoals de ankers \A en \Z. Test een patroon in de taal waarvoor je het wilt gebruiken voordat je erop vertrouwt. Lookbehind ((?<=…)), named groups ((?<name>…)) en Unicode property escapes (\p{L} met de u-flag) werken in alle huidige browsers.
Zonder de g- of y-flag wordt alleen de eerste overeenkomst gevonden, zoals bij RegExp.exec. Matches met lengte nul, bijvoorbeeld voor ^ of \b, worden vermeld maar niet gemarkeerd; daarna gaat de zoekopdracht één teken verder (één codepoint met de u-flag), zoals String.matchAll doet. Capture groups worden weergegeven op nummer en, indien gedefinieerd, op naam. Een groep die niet aan de match heeft deelgenomen, wordt gemarkeerd als zonder waarde. Dat is iets anders dan een lege match.
Sommige patronen, zoals (a+)+$ op een lange regel zonder overeenkomst, kunnen exponentieel veel tijd nodig hebben om geen match te vinden (catastrophic backtracking). Om het risico te beperken, begint het zoeken kort nadat je stopt met typen, worden alleen de eerste 100.000 tekens van de tekst doorzocht en worden maximaal 1.000 matches verzameld. Een problematisch patroon kan het tabblad nog steeds een tijdje laten vastlopen. Gebeurt dat, maak het patroon dan eenvoudiger of kort de tekst in.
Voorbeelden
Datums extraheren
Het patroon (\d{4})-(\d{2})-(\d{2}) met de g-flag ingeschakeld vindt twee matches in “Due 2026-03-15, paid 2026-04-02”. Groep 1 is het jaar; met de vervanging $3.$2.$1 wordt de tekst “Due 15.03.2026, paid 02.04.2026”.
Benoemde groepen voor leesbare code
(?<key>\w+)=(?<value>[^&]*) op de querystring a=1&b=two toont key en value voor elk paar. Dit komt overeen met wat match.groups.key en match.groups.value in JavaScript opleveren.
Hoofdletterongevoelig zoeken in meerdere regels
^error:.* met de flags g, i en m vindt elke logregel die begint met Error:, ERROR: of error:, omdat ^ met m aan het begin van elke regel matcht.
Veelgestelde vragen
Werkt mijn regex hetzelfde in Python, PHP of Java?
Niet per se. Deze tool gebruikt de JavaScript-engine. De basissyntaxis is gedeeld, maar functies zoals possessive quantifiers, atomic groups, inline flags zoals (?i) en sommige escape sequences bestaan alleen in andere varianten; bovendien werken sommige onderdelen anders. Test altijd in de doeltaal.
Waarom wordt er maar één match gevonden?
De g-flag (global) staat uit. Zonder deze flag retourneert JavaScript alleen de eerste match. Vink g aan om ze allemaal te vinden.
Moet ik de slashes rond het patroon invoeren?
Nee. Voer alleen het patroon in, bijvoorbeeld \d+ in plaats van /\d+/g, en kies de flags met de selectievakjes. De JavaScript-literalnotatie wordt onder de resultaten weergegeven, zodat je die naar je code kunt kopiëren.
Waarom werd de pagina traag met mijn patroon?
Geneste quantifiers zoals (a+)+ of (.*)* kunnen de engine dwingen om een exponentieel aantal paden te proberen als er geen match is. Maak het patroon specifieker, bijvoorbeeld door .* te vervangen door [^,]*, of gebruik ankers. De tester beperkt de tekst tot 100.000 tekens om de gevolgen te beperken.
Privacy
Je patroon en tekst worden alleen in je browser verwerkt met de JavaScript-engine. Er wordt niets geüpload, opgeslagen of opgenomen in analytics.