Developer Tools

Regex Tester & Builder

Bouw je regex stap voor stap

Kies een bouwsteen, pas hem aan en zie meteen de echte regex.

Gegenereerde regex /^$/
Vlaggen
Gemarkeerde tekst

Een reguliere expressie (regex) is een patroon waarmee je tekst kunt doorzoeken, valideren of opsplitsen. Weet je niet meer welke tekens je nodig hebt? Bouw je patroon stap voor stap met begrijpelijke bouwstenen, of kies een kant-en-klaar voorbeeld: e-mailadres, Nederlandse postcode, IBAN-rekeningnummer, mobiel nummer, webadres, IP-adres, hexadecimale kleurcode, datum, tijd, BTW-nummer, bedrag in euro of HTML-tag. Elk voorbeeld komt met een eigen testtekst, zodat je meteen ziet wat het patroon vindt. Je kunt ook direct een patroon typen, vlaggen kiezen en je eigen tekst plakken: matches en capture groups worden live bijgewerkt en gemarkeerd. Deze tool gebruikt de ingebouwde RegExp-engine van je browser (ECMAScript/JavaScript-syntax). Alles gebeurt volledig client-side — er wordt niets naar onze server verstuurd en niets opgeslagen. Een ongeldig patroon levert een duidelijke foutmelding op, nooit een crashende pagina.

Waar je dit voor gebruikt

  • \b[\w.%+-]+@[\w.-]+\.[A-Za-z]{2,}\b — matcht [email protected] in vrije tekst
  • \b\d{4}\s?[A-Za-z]{2}\b — matcht Nederlandse postcodes als 1015 CJ en 3542AD
  • \bNL\d{2}\s?[A-Za-z]{4}(?:\s?\d{4}){2}\s?\d{2}\b — matcht NL91ABNA0417164300, met of zonder spaties
  • (\d{2})-(\d{2})-(\d{4}) — matcht 05-08-2026, met groep 1 = 05, groep 2 = 08, groep 3 = 2026
  • ^\d{4}-\d{2}-\d{2}$ — valideert een ISO-datum: de hele tekst moet exact deze vorm hebben

Wat anderen van deze tool vinden

Nog geen beoordelingen voor deze tool. Die van jou is de eerste.

Veelgestelde vragen

Welke regex-syntax gebruikt deze tool?

Deze tool gebruikt de RegExp-engine die in elke browser ingebouwd zit: ECMAScript/JavaScript-syntax. Dat is grotendeels compatibel met PCRE (Perl-achtige regex zoals in PHP, Python's re-module of grep -P), maar er zijn verschillen — JavaScript kent bijvoorbeeld geen lookbehind vóór ES2018 en gebruikt een net iets andere syntax voor named groups ((?<naam>...) i.p.v. (?P<naam>...) in Python). Test je patroon dus altijd in de omgeving waar het uiteindelijk moet draaien; deze tool is representatief voor elke JavaScript-validatie in een browserformulier of Node.js-backend.

Wat betekenen de vlaggen g, i, m, s en u?

g (global) zoekt alle matches in de tekst i.p.v. alleen de eerste. i (ignore case) negeert hoofdlettergebruik. m (multiline) laat ^ en $ matchen aan het begin/einde van elke regel i.p.v. alleen aan het begin/einde van de hele tekst. s (dotAll) laat de punt (.) ook een newline matchen, wat normaal niet gebeurt. u (unicode) behandelt het patroon als een reeks Unicode-codepunten i.p.v. losse UTF-16-eenheden, belangrijk bij emoji's of tekens buiten het basis-Latijnse alfabet.

Waarom vindt mijn patroon niets in mijn tekst?

Verreweg de meest gemaakte fout is een geankerd patroon. Begint je regex met ^ en eindigt hij met $, dan eist hij dat de HELE tekst precies de waarde is. /^\d{4}\s[A-Z]{2}$/ matcht dus wel op de losse tekst 1015 CJ, maar niet op 'Ons kantoor staat op 1015 CJ Amsterdam' — daar staat immers meer omheen. Wil je iets vinden in lopende tekst, laat ^ en $ dan weg en gebruik in plaats daarvan \b (woordgrens) om te voorkomen dat je middenin een langer woord matcht. In de builder maak je dat verschil met de schakelaar 'Alleen als de hele tekst klopt (valideren)'. Twee andere veelvoorkomende oorzaken: \s+ eist minstens één spatie (gebruik \s? als die spatie optioneel is, zoals bij 1234AB), en [A-Z] matcht geen kleine letters zonder de i-vlag.

Waarom krijg ik een foutmelding in plaats van resultaten?

Een reguliere expressie moet syntactisch geldig zijn: haakjes en blokhaken moeten in balans zijn, een kwantificator (*, +, ?, {n,m}) moet ergens op slaan, en een backreference moet naar een bestaande groep verwijzen. Deze tool bouwt je patroon met JavaScripts eigen RegExp-constructor, dus elke fout die de browser zelf zou geven (bijvoorbeeld 'Invalid regular expression: Unterminated group') wordt direct en leesbaar getoond in plaats van dat de pagina vastloopt of een lege uitkomst toont.

Wat is een capture group en hoe zie ik die hier terug?

Een capture group is een deel van je patroon tussen haakjes, bijvoorbeeld (\d{4}) in ^(\d{4})-(\d{2})-(\d{2})$. Bij een match toont deze tool niet alleen de volledige overeenkomst, maar ook elke genummerde groep apart (groep 1, groep 2, ...) en, als je named groups gebruikt zoals (?<jaar>\d{4}), ook de naam ernaast. Handig om te controleren of je precies het juiste deel van de tekst extraheert voordat je het patroon in je eigen code gebruikt.

Worden mijn patroon en testtekst ergens opgeslagen?

Nee. De volledige matching gebeurt lokaal in je browser met JavaScripts eigen RegExp-object. Er wordt niets naar een server van Westcube (of wie dan ook) verstuurd, niets gelogd en niets bewaard. Sluit je het tabblad, dan is alles verdwenen — geschikt om ook gevoelige testdata (zoals voorbeeld-e-mailadressen) tegen je patroon te testen.