Regex-tester
Test regex-patronen met live matching, flags en details.
Wat is een regex-tester?
Een regex-tester (reguliere expressie) laat u patronen bouwen en testen tegen voorbeeldtekst. Het markeert overeenkomsten, toont capture groups en legt de syntax uit.
Reguliere expressies zijn een krachtige taal voor patroonherkenning in tekst. Ze worden gebruikt in zoeken-en-vervangen, validatie (e-mail, telefoonnummer), parsing en teksttransformatie.
Hoe gebruikt u deze tool?
Voer een regex-patroon en vlaggen (g, i, m) in. Plak testtekst. Overeenkomsten worden gemarkeerd. Capture groups worden apart getoond. Fouten in de syntax worden uitgelegd.
Veelvoorkomende regex-patronen
- E-mailadressen: ^[^\s@]+@[^\s@]+\.[^\s@]+$ โ komt overeen met standaard e-mailformaten.
- URL's: https?://\S+ โ komt overeen met URL's die beginnen met http of https.
- IPv4-adressen: komt overeen met de standaard puntjes-decimaalnotatie zoals 192.168.1.1 met cijferquantifiers.
- Datums: komt overeen met datums in JJJJ-MM-DD-formaat met patronen voor een vierjarig jaar en tweecijferige maand en dag.
- Woorden met hoofdletter: [A-Z][a-z]+ โ komt overeen met woorden die met een hoofdletter beginnen.
Vlaggen
- g: g (Global): vindt alle overeenkomsten in de tekst, niet alleen de eerste.
- i: i (Case-insensitive): laat het patroon overeenkomen ongeacht hoofdletters.
- m: m (Multiline): laat ^ en $ overeenkomen met het begin en einde van elke regel, niet alleen de hele string.
- s: s (Dotall): laat het metateken . ook overeenkomen met regeleindetekens.
Capturegroepen
Haakjes () creรซren capturegroepen die specifieke delen van een match extraheren. Elke groep is genummerd vanaf 1. Zo legt het patroon (\w+)@(\w+\.\w+) toegepast op "user@example.com" "user" vast in groep 1 en "example.com" in groep 2. Benoemde groepen met (?<naam>...) maken complexe patronen leesbaarder.
Veelgemaakte regex-fouten
Vergeten speciale tekens te escapen is de meest voorkomende fout. Tekens als . + * ? ( ) [ ] ^ $ | en accolades hebben een speciale betekenis in regex en moeten met een backslash worden geรซscaped wanneer u ze letterlijk wilt matchen. Een punt matchen vereist bijvoorbeeld een backslash-punt in plaats van alleen een punt.
Te grijpzieke patronen schrijven is een andere veelvoorkomende valkuil. De .*-quantifier matcht zoveel mogelijk tekst, wat veel meer kan opleveren dan bedoeld. Gebruik de luie quantifier .*? om zo min mogelijk te matchen, of gebruik specifiekere patronen zoals [^>]* in plaats van .* bij het parsen van gestructureerde tekst.
Veelgestelde vragen
Waarom zijn regex's zo moeilijk leesbaar?
Regex is een compacte taal โ veel betekenis in weinig tekens. Tips: gebruik de x-vlag (verbose) voor commentaar, splits complexe patronen in benoemde groepen, gebruik een regex-tester met visuele uitleg. Begin eenvoudig en bouw op.
Is regex hetzelfde in elke programmeertaal?
De kern (PCRE-standaard) is vergelijkbaar, maar er zijn verschillen. JavaScript mist sommige features (lookbehind pas sinds ES2018). Python gebruikt re module met iets andere syntax. Java vereist dubbele escapes (\d). Test altijd in de doeltaal.