PK Systems PK Systems
Ontwikkelaarstools

Regex-tester

Bouw, test en debug JavaScript reguliere expressies met live highlighting, vervang-modus en kant-en-klare presets.

Regex-tester

Uitvoer

Gemarkeerde preview
Overeenkomsten

    Wat is een reguliere expressie?

    Een reguliere expressie (regex) is een minitaal voor zoeken en transformeren van tekst. Het zit achter zoek-in-bestanden, log-analyse, validatieregels, lexers en de meeste zoek-en-vervang-functies in editors. Deze tool bouwt een live RegExp in je browser, draait die tegen de teststring en toont elke match plus inline highlighting. Hij gebruikt de standaard JavaScript-engine, dus wat hier werkt, werkt hetzelfde in Node.js en elke moderne browser.

    Hoe gebruik je de tester

    Typ je patroon (zonder de omringende /.../) in het patroonveld, kies de flags die je nodig hebt en plak je testtekst eronder. Matches worden in de preview-paneel gemarkeerd en individueel met hun karakterposities opgesomd. Schakel Vervang-modus aan om het resultaat van String.prototype.replace() met je vervangtekst te zien — gebruik $& voor de hele match en $1, $2 voor capture-groepen. De preset-chips laden gangbare patronen in het veld zodat je kunt tweaken in plaats van vanaf nul te beginnen.

    Regex-cheatsheet

    De meest bruikbare tokens, op één plek. JavaScript-regex volgt de ECMAScript-syntax — dicht bij PCRE, met een paar weglatingen (geen possessive quantifiers, geen recursieve patronen).

    Token Betekenis
    .Elk teken (behalve newline, tenzij flag s aan staat)
    \d \w \sCijfer, woordteken (letters/cijfers/_), witruimte
    ^ $Begin van string, einde van string (per regel met flag m)
    * + ?Nul of meer, één of meer, nul of één (standaard greedy)
    {n,m}Tussen n en m herhalingen
    [abc]Elk teken in de set; gebruik [^abc] om te negeren
    (...)Capture-groep; gebruik (?:...) voor een niet-capturende groep
    |Alternatief — match een van beide kanten

    Veelgestelde vragen

    Welke regex-engine wordt gebruikt?
    De ingebouwde JavaScript-engine van je browser — V8 in Chrome/Edge, SpiderMonkey in Firefox, JavaScriptCore in Safari. Alle drie implementeren de ECMAScript-regex-spec, dus gedrag is consistent over browsers en komt exact overeen met Node.js. PCRE-only-features zoals recursieve patronen en possessive quantifiers worden niet ondersteund.
    Wat betekenen de flags?
    g vindt alle matches (niet alleen de eerste). i negeert hoofdletters. m laat ^ en $ begin/einde van regels matchen. s laat . ook newlines matchen. u schakelt volledige Unicode-modus in (vereist voor properties als \p{Letter}). y is sticky — matches moeten precies bij lastIndex beginnen.
    Wordt er iets naar een server gestuurd?
    Nee. Het patroon, de teststring en de vervangtekst worden allemaal lokaal geëvalueerd met new RegExp() en String.prototype.replace(). Open DevTools > Network ter bevestiging: er gaan geen requests af tijdens typen. Veilig voor logfragmenten, interne data of alles wat je niet in een gehoste regex-sandbox zou plakken.
    Waarom is mijn regex traag of bevriest de pagina?
    Catastrofale backtracking. Patronen met geneste quantifiers als (a+)+ of (.*)* kunnen miljarden stappen draaien op invoer die bijna matcht. Vermijd nesting van +/*; geef de voorkeur aan atomic-style alternatieven als [^x]+ of veranker je patroon. De tester bewaakt op runaway-matches met een limiet van 50.000 iteraties zodat de pagina niet vastloopt.
    Hoe gebruik ik capture-groepen in Vervang-modus?
    Wikkel delen van je patroon in haakjes — die worden genummerde groepen: $1, $2 enz. Voorbeeld: patroon (\w+)@(\w+) met vervangtekst $2 / $1 wisselt gebruiker en domein in een e-mail. $& betekent de hele match, $$ levert een letterlijke $. Genoemde groepen (?<naam>...) kun je gebruiken als $<naam>.
    Waarom matchen mijn ^ en $ niet elke regel?
    Standaard matcht ^ alleen het allereerste begin van de teststring en $ alleen het allerlaatste einde — niet elke regel. Voeg de flag m (multiline) toe en ze matchen regelafbrekingen. Heb je ook nodig dat . newlines matcht (bijvoorbeeld om over regels te grijpen), voeg dan flag s (dotAll) toe.