Naar inhoud springen

Reguliere expressies testen

Test een reguliere expressie in JavaScript op je tekst, met live gemarkeerde treffers, capture groups en uitleg in gewone taal, direct in je browser.

JavaScript-regexvariant (ECMAScript)Dezelfde engine als in je browser, Node.js en Deno
//g

$1 of $<naam> voegt een groep in, $& de hele treffer, $` en $' de tekst ervoor en erna, $$ een dollarteken.

Treffers en capturegroepen verschijnen hier.

Werkt in je browser · geen uploadZo werkt het

Zo gebruik je Regex-tester

  1. 1

    Voer een patroon in

    Typ de reguliere expressie zonder slashes; de vlaggen zet je met de schakelaars eronder.

  2. 2

    Voeg een teststring toe

    Plak de tekst waarin je wilt zoeken; treffers worden tijdens het typen gemarkeerd en met hun capture-groepen getoond.

  3. 3

    Bekijk de uitleg

    Open Uitleg om elk token in gewoon Nederlands te lezen en te zien wat het patroon echt doet.

  4. 4

    Bekijk een voorbeeld van een vervanging

    Typ een vervanging met $1 of $<naam> om het resultaat te zien en kopieer daarna de code via het tabblad Code.

Limieten en Pro

Gratis zonder account: tot 100.000 treffers geteld, 2.000 gemarkeerd en 200 getoond in de tabel; markeren werkt voor teststrings tot 200.000 tekens en elke run stopt na 1,5 seconde.

Pro haalt de advertenties weg; de tester werkt met elk abonnement hetzelfde. Pro bekijken

Over Regex-tester

Deze tester voert je patroon uit met de reguliere-expressie-engine van JavaScript (ECMAScript) die in de browser zit – dezelfde engine als in Node.js, Deno, Bun en elke webpagina – dus wat hier een treffer oplevert, werkt ook in je code. Typ een patroon en een teststring en elke treffer wordt direct gemarkeerd, met een tabel met posities, genummerde capture-groepen en benoemde groepen, en het begin en einde van elke groep als de vlag d aan staat.

Alle acht vlaggen zijn aan en uit te zetten: g voor alle treffers, i voor hoofdletterongevoelig zoeken, m zodat ^ en $ per regel werken, s zodat de punt ook regeleinden vindt, u voor volledige Unicode en \p{…}-eigenschappen, v voor Unicode-sets met doorsnede en verschil binnen haakjes, y voor sticky matching en d voor indices. Bij Vervangen zie je een voorbeeld van String.prototype.replace met $1, $<naam>, $& en de andere vervangtokens, en op het tabblad Code vind je de bijbehorende snippets met literal, matchAll en RegExp().

Het tabblad Uitleg splitst het patroon op in tokens en legt in gewoon Nederlands uit wat elk token doet – groepen, lookarounds, tekenklassen, kwantoren en of ze greedy of lazy zijn – en het Spiekbriefje voegt veelgebruikte tokens in op de plek van de cursor.

Het zoeken draait in een Web Worker op de achtergrond met een limiet van 1,5 seconde. Een patroon met catastrofale backtracking, zoals (a+)+b op een lange reeks a's, wordt gestopt met een toelichting in plaats van dat het tabblad vastloopt. Patronen voor PCRE, Python of .NET moeten soms worden aangepast: possessieve kwantoren, atomaire groepen, recursie, \A en \Z bestaan niet in JavaScript.

Privacy

Patronen en teststrings blijven in dit browsertabblad: het zoeken gebeurt in een lokale Web Worker en niets wat je typt wordt geüpload, gelogd of opgeslagen. Je kunt dus veilig testen met echte logregels of klantgegevens.

Functies

De echte JS-engine

Zoekt precies zoals RegExp in browsers en Node.js, inclusief sets met de vlag v en benoemde groepen.

Uitleg per token

Elke groep, klasse, anker en kwantor beschreven in gewoon Nederlands.

Bescherming tegen backtracking

Het zoeken draait in een worker met een limiet van 1,5 seconde, zodat een slecht patroon de pagina niet kan laten vastlopen.

Regex-tester: veelgestelde vragen

Welke regex-variant gebruikt deze tester?
Die van JavaScript, zoals vastgelegd in de ECMAScript-standaard en geïmplementeerd door je browser. Lookbehind, benoemde groepen, Unicode-eigenschappen en de vlag v werken, maar PCRE-functies zoals possessieve kwantoren, atomaire groepen, recursie of conditionals niet. De Python-syntaxis (?P<naam>…) schrijf je hier als (?<naam>…). De resultaten komen overeen met Node.js en Deno op dezelfde engineversie.
Waarom vindt mijn patroon alleen de eerste treffer?
Zonder de vlag g stopt JavaScript na de eerste treffer: exec en match geven één resultaat en replace wijzigt alleen het eerste voorkomen. Zet g aan om alle treffers te vinden en te vervangen. De sticky vlag y werkt anders: die zoekt alleen op de plek waar de vorige treffer eindigde, handig voor tokenizers.
Wat is catastrofale backtracking?
Als een patroon dezelfde tekst op veel manieren kan matchen, zoals bij geneste kwantoren als (a+)+ of (.*)*, probeert de engine bij een mislukte match elke combinatie, en dat groeit exponentieel met de lengte van de invoer. Hier stopt het na 1,5 seconde met een waarschuwing. Los het op door alternatieven elkaar uit te laten sluiten, bijvoorbeeld [^,]* in plaats van .* vóór een komma.
Hoe gebruik ik capture-groepen in de vervanging?
Schrijf $1, $2 enzovoort voor genummerde groepen, of $<naam> voor een benoemde groep zoals (?<jaar>\d{4}). $& voegt de hele treffer in, $` de tekst ervoor en $' de tekst erna, en $$ geeft een letterlijk dollarteken. Met Probeer een voorbeeld laad je een datumpatroon dat jaar, maand en dag op deze manier omzet.
Wanneer heb ik de vlag u of v nodig?
Gebruik u als je tekst emoji of andere tekens buiten het Basic Multilingual Plane bevat, zodat de punt en kwantoren ze als één teken zien, en voor Unicode-eigenschappen als \p{L}. De nieuwere vlag v kan alles wat u kan en voegt setbewerkingen binnen haakjes toe, zoals [\p{L}--[a-z]] voor niet-ASCII-letters. De twee vlaggen kun je niet combineren.