Gratis online regex-tester en visualisator. Schrijf een reguliere JavaScript-expressie en bekijk deze getekend als een interactief diagram, uitgelegd in gewoon Engels en live gekoppeld aan kleurgecodeerde capture-groepen. Code vervangen, extraheren, testen en exporteren, geen aanmelding.
Een regex-tester die u laat zien wat uw patroon betekent
Test, debug en begrijp reguliere expressies op één plek. Typ een patroon en het wordt onmiddellijk getekend als een interactief spoorwegdiagram, token voor token uitgelegd in gewoon Engels, en live uitgevoerd tegen uw tekst waarbij elke match en capture-groep in kleur gemarkeerd is. Vervang, extraheer, splits, schrijf unit-tests, exporteer werkende code voor 9 talen en ontvang waarschuwingen over catastrofale backtracking, allemaal vanuit uw browser.
De meeste regex-testers vertellen u alleen of een patroon overeenkomt. Deze laat je ook zien waarom. Terwijl u typt, wordt de reguliere expressie ontleed en getekend als een spoorwegdiagram: een kaart van links naar rechts waarbij elk pad door het diagram een tekenreeks is die bij het patroon past. Beweeg de muis over een willekeurig vakje en de overeenkomende karakters lichten op in uw patroon, en een duidelijke Engelse beschrijving vertelt u precies wat dat stuk doet. Beweeg de tekstcursor door het patroon en het diagram volgt het. Hieronder wordt uw patroon live weergegeven tegen uw eigen testtekst, waarbij elke overeenkomst gemarkeerd is en elke opnamegroep in zijn eigen kleur, zodat u tegelijkertijd kunt zien wat er overeenkomt en waarom.
Functies
Interactief spoorwegdiagram van elk patroon: beweeg over een vakje om het in de regex te laten oplichten
Duidelijke Engelse uitleg van elk token, groep, kwantor en lookaround
Live wedstrijdmarkering met kleurgecodeerde opnamegroepen in de tekst
Klik op een wedstrijd om te zien wat elke groep heeft vastgelegd, direct in het diagram
Syntaxiskleurige patrooneditor die uw cursor volgt
Alle JavaScript-vlaggen: g, i, m, s, u, v (unicodesets) en y
Vervang door $1, $<naam>, $& en een gemarkeerd voor/na-voorbeeld
Extraheer overeenkomsten naar een lijst met sjablonen, uniek/sorteren, CSV en JSON-export
Splits tekst door een regex en unit-tests die wel (of niet) moeten overeenkomen
Code-export voor JavaScript, TypeScript, Python, PHP, Java, C#, Go, Rust en Ruby
Compatibiliteitstabel: bekijk welke functies kapot zijn in Python, PCRE, Go of Rust
ReDoS-bewaker: loopt een werknemer binnen, stopt op hol geslagen patronen en markeert geneste kwantoren
Bibliotheek met 40 geteste patronen plus een builder voor het genereren van voorbeelden
Klikbare cheatsheet, opgeslagen patronen en deelbare links, 100% in uw browser
Hoe Regex-tester en visualisator te gebruiken
1
Voer een patroon in
Typ een regex (plakken /pattern/flags splitst deze automatisch), kies er een uit de patroonbibliotheek of genereer er een uit voorbeelden op het tabblad Bouwen.
2
Schakel vlaggen in
Klik op g, i, m, s, u, v of y om het matchinggedrag te wijzigen; beweeg een vlag om te zien wat deze doet.
3
Lees het visuele diagram
Beweeg of klik op een vakje in het spoorwegdiagram, of ga naar Uitleg, om te zien wat elk deel van het patroon betekent.
4
Test het met uw tekst
Plak tekst in de testreeks; wedstrijden en opnamegroepen worden live gemarkeerd. Klik op een overeenkomst om de waarde van elke groep in het diagram te zien.
5
Vervangen, uitpakken of testen
Gebruik Replace-, Extract-, Split- en Unit-tests om te controleren of het patroon precies doet wat u nodig heeft.
6
Exporteren of delen
Kopieer de werkcode voor uw taal vanaf het tabblad Code, download het diagram als SVG/PNG of kopieer een deellink.
Veelvoorkomende gebruiksscenario's
Begrijp een complexe regex die je hebt geërfd, één diagramvak tegelijk
Debug waarom een regex niet overeenkomt met uw gegevens
Valideer een e-mail-, URL-, telefoon- of wachtwoordpatroon voordat u deze verzendt
Extraheer velden uit logregels met benoemde capture-groepen
Maak en bekijk een zoek-en-vervang-voorbeeld met groepsreferenties
Porteer een JavaScript-regex naar Python, PHP, Go of Java
Controleer een patroon voor catastrofale backtracking (ReDoS)
Leer reguliere expressies met een visuele uitleg
Gedetailleerde gids
Hoe een regex-spoorwegdiagram te lezen
Spoorwegdiagrammen (syntaxis) worden gelezen als een treinspoor: begin bij de stip aan de linkerkant, volg een willekeurige route tot het einde, en de karakters waar je doorheen gaat vormen een string die de regex accepteert. Vertakkingen betekenen alternatieven, een nummer dat eronder doorloopt, betekent herhaling, en een nummer dat een vak erboven omzeilt, betekent dat een deel optioneel is. Gekleurde kaders zijn opnamegroepen (dezelfde kleuren worden gebruikt in uw gemarkeerde overeenkomsten), streepjeskaders zijn lookarounds die controleren zonder tekst te verbruiken, en pilvormige kaders zijn ankers die overeenkomen met een positie in plaats van met een teken. Klik op een overeenkomst in de resultaten en elk groepsframe toont de exacte waarde die het heeft vastgelegd, of 'geen overeenkomst' als die groep is overgeslagen.
In het diagram
Regex-syntaxis
Betekenis
Doos met geciteerde tekst
abc\. \N
Deze exacte karakters
Vakvermelding 'een van:'
[a-z0-9_]
Elk afzonderlijk personage uit de set
Vakvermelding 'geen van:'
[^\s@]
Elk afzonderlijk teken dat NIET in de set voorkomt
Groen vak (cijfer, woordteken…)
\d \w \s .
Een karakterklasse-steno
Pilvormige doos
^ $ \b
Een anker: een positie, geen karakter
Track splitst zich in takken
kat|hond
Ofwel alternatief
Volg de lussen terug eronder
+ * {2,5}
Herhalen (label laat zien hoe vaak)
Volg bypasses hierboven
? * {0,3}
Het onderdeel is optioneel
Gestippelde lus
+? *?
Lui: herhaal zo weinig mogelijk
Gekleurd kader '#1 naam'
(…) (?<naam>…)
Vanggroep, genummerd van links naar rechts
Onderbroken kader 'gevolgd door:'
(?=…) (?!…) (?<=…)
Vooruit/achteruit kijken
Regex-spiekbriefje: de syntaxis die u elke dag gebruikt
Open het ingebouwde spiekbriefje boven de tester en klik op een token om het bij je cursor in te voegen. Dit zijn de bouwstenen van bijna elk patroon:
Token
Wedstrijden
Voorbeeld
\d
Een cijfer 0-9
\d{4} komt overeen met 2026
\w
Letter, cijfer of onderstrepingsteken
\w+ komt overeen met gebruiker_42
\s
Witruimte (spatie, tab, nieuwe regel)
a\sb komt overeen met 'a b'
.
Elk teken behalve een regeleinde
a.c komt overeen met abc, a-c
[abc] / [^abc]
Eén van/geen van de vermelde karakters
[aeiou] komt overeen met een klinker
^ en $
Begin en einde van de string (of lijn met m)
^\d+$ bestaat alleen uit cijfers
\b
Een woordgrens
\bcat\b slaat 'samenvoegen' over
* + ?
0+, 1+ of 0-1 herhalingen
kleur komt overeen met kleur, kleur
{n,m}
Tussen n en m herhalingen
\d{2,4}
(…) en (?<naam>…)
Groep / benoemde groep vastleggen
(?<jaar>\d{4})
(?:…)
Groepeer zonder vast te leggen
(?:ab)+
\1, \k<naam>
Dezelfde tekst als een eerdere groep
(\w)\1 komt overeen met 'll'
(?=…) (?!…)
Gevolgd door / niet gevolgd door
\d+(?=px)
(?<=…) (?<!…)
Voorafgegaan door / niet voorafgegaan door
(?<=\$)\d+
Regex-vlaggen uitgelegd
Vlaggen veranderen hoe het hele patroon zich gedraagt. Schakel ze met één klik; beweeg een vlag om te zien wat deze doet.
Vlag
Naam
Effect
g
mondiaal
Vind elke match in plaats van te stoppen bij de eerste
i
geval negeren
Letters komen overeen in hoofdletters of kleine letters
m
meerdere regels
^ en $ komen overeen aan het begin/einde van elke regel
s
puntAlles
. komt ook overeen met regeleinden
u
Unicode
Behandelt emoji- en astrale karakters als één karakter; schakelt \p{…} in
v
Unicode-sets
Alles wat u doet, plus ingestelde bewerkingen zoals [\p{L}--[a-z]]
y
kleverig
Elke wedstrijd moet precies beginnen waar de vorige eindigde
Vervangen, extraheren, splitsen en unit-testen op één plek
Schakel over naar Vervangen om een zoek-en-vervang-regel samen te stellen met $1, $<naam>, $& en $$ tokens; het resultaat markeert elk ingevoegd stuk, zodat u het kunt controleren voordat u het op echte gegevens uitvoert. Extract verandert elke match in een lijst met behulp van een sjabloon (bijvoorbeeld $2, $1 om twee groepen te wisselen), met unieke en sorteeropties en CSV- of JSON-export voor spreadsheets. Split laat precies zien wat String.split() retourneert, inclusief vastgelegde scheidingstekens. Met eenheidstests kunt u gedrag vaststellen: voeg reeksen toe die moeten overeenkomen, die volledig moeten overeenkomen of die niet moeten overeenkomen, en het aantal slagen/mislukken wordt bijgewerkt bij elke toetsaanslag, zodat een kleine verandering in uw patroon nooit stilletjes een probleem verbreekt dat u al hebt opgelost.
Catastrofale backtracking (ReDoS) en hoe deze tester u beschermt
Sommige patronen, zoals (a+)+$ of (\w+\s?)*$, kunnen op exponentieel veel manieren over hun herhalingen worden verdeeld. Wanneer de invoer bijna overeenkomt, probeert de engine elke combinatie en kan een browsertabblad bevriezen of een server uitschakelen, een kwetsbaarheid die bekend staat als ReDoS (regular expression denial of service). Deze tester draait elk patroon in een aparte Web Worker met een limiet van twee seconden: als de engine vastloopt, wordt deze gestopt en krijg je een duidelijke waarschuwing in plaats van een vastgelopen pagina. Een ingebouwde linter markeert ook de risicovolle vorm (een herhaalde groep waarvan het binnenste deel zich ook herhaalt) voordat je deze verzendt, samen met andere veel voorkomende fouten zoals een niet-ontsnapte punt in een domeinnaam, [A-z]-bereiken en lege alternatieven.
Gebruik dezelfde regex in Python, PHP, Java, C#, Go, Rust en Ruby
De tester voert de JavaScript-regex-engine (ECMAScript) van uw browser uit, dus de resultaten zijn exact voor JavaScript, TypeScript en Node.js. Het tabblad Code verandert uw patroon in kant-en-klare code voor acht andere talen en converteert de delen die verschillen: benoemde groepen worden (?P<name>…) voor Python, vlaggen worden RegexOptions voor C# of inline (?i) voor Go en Rust, en vervangende tokens worden voor elke taal herschreven. Een compatibiliteitstabel vermeldt elke functie die uw patroon gebruikt en of elke engine deze ondersteunt:
Begin met een getest patroon of genereer er een uit voorbeelden
De patroonbibliotheek bevat 40 kant-en-klare, geteste uitdrukkingen, elk met voorbeeldtekst: e-mail, URL, IPv4 en IPv6, E.164- en Amerikaanse telefoonnummers, sterke wachtwoorden, UUID's, semantische versies, Britse postcodes, ISO- en DD/MM/JJJJ-datums, prijzen, hashtags, @mentions, Markdown-links, HTML-tags, Apache/Nginx-logregels, dubbele woorden en meer. Als u liever uitgaat van uw gegevens, plak dan een paar voorbeelden in Build: de generator groepeert letters, cijfers en symbolen in een patroon zoals ^\d{4}-\d{2}-\d{2}$ dat u kunt verfijnen. Build kan ook aan elke letterlijke tekst ontsnappen, dus tekens als . * ? ( ) $ komen exact overeen.
Privé door ontwerp
Alles draait lokaal in de JavaScript-engine van uw browser: niets dat u typt, wordt geüpload, geregistreerd of opgeslagen op een server. Uw laatste sessie wordt in deze browser bewaard, zodat u verder kunt gaan waar u was gebleven, opgeslagen patronen blijven op uw apparaat en deellinks dragen het patroon, de tekst en de tests in de URL zelf, zodat er niets aan onze kant wordt opgeslagen.
Veelgestelde vragen
Welke regex-smaak gebruikt deze tester?
Het maakt gebruik van de eigen JavaScript (ECMAScript) reguliere expressie-engine van uw browser, dezelfde die Chrome, Firefox, Safari en Node.js gebruiken, inclusief de vlaggen g, i, m, s, u, v en y. De resultaten zijn exact voor JavaScript en TypeScript; het tabblad Code converteert het patroon voor andere talen.
Kan ik opnamegroepen testen?
Ja. Bij elke overeenkomst wordt de positie vermeld en de waarde van elke genummerde en benoemde groep. Groepen worden in uw tekst met kleuren gemarkeerd en als u op een overeenkomst klikt, wordt de vastgelegde waarde van elke groep direct in het diagram weergegeven.
Hoe werkt het vervangingsvoorbeeld?
Typ een vervanging met $1, $2 voor genummerde groepen, $<naam> voor benoemde groepen, $& voor de hele wedstrijd en $$ voor een letterlijk dollarteken. Het resultaat wordt live bijgewerkt en markeert elk ingevoegd stuk, precies zoals String.replace() het zou produceren.
Zijn mijn testgegevens privé?
Ja. De regex draait volledig in uw browser, in een lokale Web Worker. Uw patronen en testreeksen worden nooit geüpload; opgeslagen patronen blijven alleen in deze browser.
Hoe test ik een reguliere expressie aan de hand van mijn tekst?
Typ uw patroon en plak de voorbeeldtekst; overeenkomsten worden live gemarkeerd en er worden opnamegroepen weergegeven, zodat u precies kunt zien wat uw regex-overeenkomsten zijn en deze direct kunt verfijnen.
Waarom komt mijn regex nergens mee overeen?
Veelvoorkomende oorzaken zijn een ontbrekende vlag (i voor hoofdlettergebruik, m so ^ en $ work per regel, s so . kruist regeleinden), een speciaal teken zonder escapecodes, of syntaxis uit een andere taal. Beweeg het diagram om te zien wat elk onderdeel verwacht, lees de duidelijke Engelse uitleg en controleer de waarschuwingen onder het patroon.
Kan ik hetzelfde patroon testen voor JavaScript en andere smaken?
De matching wordt uitgevoerd op de JavaScript-engine en het tabblad Code genereert werkende code voor Python, PHP, Java, C#, Go, Rust en Ruby, waarbij benoemde groepen, vlaggen en vervangende syntaxis worden geconverteerd. Een compatibiliteitstabel laat zien welke functies, zoals lookbehind of terugreferenties, niet in elke engine worden ondersteund.
Wat is een regex-visualizer of spoorwegdiagram?
Een regex-visualizer tekent een reguliere expressie als een spoorwegdiagram: een spoor dat je van links naar rechts volgt, waarbij vertakkingen alternatieven zijn, lussen herhalingen zijn en bypasses optionele onderdelen zijn. Het maakt lange patronen veel gemakkelijker te lezen dan de onbewerkte syntaxis. Hier is het diagram interactief: beweeg over een vakje om het in het patroon te markeren en een duidelijke Engelse uitleg te zien.
Kan ik het regex-diagram downloaden?
Ja. Gebruik de SVG- of PNG-knoppen boven het diagram om het te downloaden voor documentatie, codebeoordelingen of lesmateriaal. Zoom- en aanpassingsmogelijkheden voor de breedte helpen bij lange patronen.
Wat is catastrofale backtracking (ReDoS)?
Het gebeurt wanneer een patroon als (a+)+$ dezelfde tekst op exponentieel veel manieren kan splitsen tussen geneste herhalingen, zodat een bijna-ongeval-invoer de engine seconden of uren laat draaien. Deze tester voert patronen uit in een Web Worker, stopt ze na twee seconden en waarschuwt voor geneste kwantoren voordat u ze implementeert.
Hoe converteer ik een JavaScript-regex naar Python?
Open het tabblad Code en kies Python. De tool herschrijft (?<naam>…) als (?P<naam>…), \k<naam> als (?P=naam), wijst de i-, m- en s-vlaggen toe aan re.IGNORECASE, re.MULTILINE en re.DOTALL, en converteert $1-vervangingen naar \g<1>. Houd er rekening mee dat de ingebouwde re-module van Python geen \p{…} Unicode-eigenschappen ondersteunt.
Wat betekenen de regex-vlaggen g, i, m, s, u, v en y?
g vindt alle overeenkomsten, i negeert hoofdletters en kleine letters, m zorgt ervoor dat ^ en $ op elke regel werken, s let . match regeleinden, u schakelt volledige Unicode- en \p{…}-eigenschappen in, v voegt Unicode-setbewerkingen toe, en y (sticky) komt alleen overeen op de exacte positie waar de laatste match eindigde.
Wat is het verschil tussen hebzuchtige en luie kwantoren?
Hebzuchtige kwantoren (*, +, {n,m}) komen zoveel mogelijk overeen en geven tekens terug indien nodig; luie (*?, +?, {n,m}?) komen zo min mogelijk overeen en breiden alleen uit als dat nodig is. <.+> komt bijvoorbeeld overeen met een hele rij tags, terwijl <.+?> met één tag tegelijk overeenkomt. In het diagram is een luie lus gestippeld getekend.
Hoe werken vooruit en achteruit kijken?
Ze controleren wat er na (?=…) of vóór (?<=…) de huidige positie komt, zonder dit in de wedstrijd op te nemen; de ontkennende vormen (?!…) en (?<!…) vereisen dat de tekst NIET aanwezig is. \d+(?=px) komt bijvoorbeeld overeen met 12 in '12px'. JavaScript ondersteunt lookbehind van elke lengte.
Kan deze tool een regex voor mij genereren?
Ja. Plak een paar voorbeelden op het tabblad Bouwen en er wordt een patroon voorgesteld door letters, cijfers en symbolen te generaliseren (24-09-2026 wordt bijvoorbeeld \d{4}-\d{2}-\d{2}). Je kunt ook uitgaan van 40 geteste patronen in de bibliotheek, zoals e-mail, URL, IP-adres, telefoonnummer, datum en wachtwoordregels.
Hoe schrijf ik eenheidstests voor een reguliere expressie?
Open het tabblad Eenheidstests en voeg tekenreeksen toe die moeten overeenkomen, volledig moeten overeenkomen of niet moeten overeenkomen. Elke test wordt bij elke toetsaanslag opnieuw uitgevoerd, waarbij het aantal geslaagd/mislukten wordt bijgehouden. Importregels veranderen elke regel van uw testtekst in een testcase.
Kan ik een regex met iemand delen?
Klik op de link Delen om een URL te kopiëren die het exacte patroon, de vlaggen, de testtekst, de vervanging en de eenheidstests opnieuw opent. Alles is gecodeerd in de link zelf, dus niets wordt op een server opgeslagen.
Hoe verschilt dit van regex101 of RegExr?
Met regex101 kun je schakelen tussen verschillende engine zoals PCRE, Python en Java, wat deze tool niet doet. Deze tester richt zich op de JavaScript-engine waarop uw code daadwerkelijk draait en voegt een interactief spoorwegdiagram, unit-tests, ReDoS-bescherming, code-export voor 9 talen en een compatibiliteitstabel toe, zonder account en niets geüpload.