← Alle tools

Regex-tester

Bouw, test en debug reguliere expressies live op je eigen tekst in de browser. Leer tekenklassen, kwantoren, ankers, groepen en vlaggen kennen.

Regex-tester: patronen bouwen en debuggen met je eigen tekst

Een reguliere expressie is een kleine taal om de vorm van tekst te beschrijven. In plaats van te vragen "staat dit exacte woord hier?", laat een regex je vragen "is er een string die er zo uitziet?" Dat maakt hem krachtig voor het zoeken, valideren, extraheren en vervangen van tekst in code-editors, logbestanden, formulierinvoer en scripts. Dat maakt het ook makkelijk om het fout te doen, want een patroon dat er in je hoofd goed uitziet, kan stilletjes te veel, te weinig of helemaal niets matchen.

Dat is waarom interactief testen beter is dan gokken. Als je een patroon typt en matches ziet oplichten in echte voorbeeldtekst, krijg je direct feedback: je ziet wat er is gevangen, wat er doorheen is geglipt, en welke vastleggroep welk stukje heeft gepakt. Onze Regex-tester draait volledig in je browser. Je patroon en je voorbeeldtekst verlaten de pagina nooit, zodat je logregels, e-mailadressen of productiedata kunt plakken zonder iets naar een server te sturen.

Gloeiend cyaan filter dat specifieke gouden tokens opvangt uit een vloeiende datastroom op een donkerindigo achtergrond
Een regex werkt als een filter en selecteert alleen de tokens die bij je patroon passen.

De bouwstenen die het waard zijn te kennen

De meeste dagelijkse patronen zijn samengesteld uit een kleine set onderdelen. Leer deze en je kunt de meerderheid van de regex's lezen die je in het wild tegenkomt.

Tekenklassen beschrijven een verzameling toegestane tekens. [aeiou] matcht een enkele klinker, [0-9] matcht één cijfer, en [a-zA-Z] matcht één letter. Een caret binnen de haakjes negeert de verzameling, dus [^0-9] betekent "elk teken dat geen cijfer is." Afkortingen besparen het typen: \d is een cijfer, \w is een woordteken (letters, cijfers, underscore), \s is witruimte, en de punt . matcht bijna elk enkel teken.

Kwantoren geven aan hoe vaak het voorgaande onderdeel mag herhalen. * betekent nul of meer, + betekent een of meer, en ? betekent nul of een (optioneel). Voor exacte aantallen betekent {3} precies drie en {2,4} twee tot vier. Dus \d{4} matcht een viercijferig jaar en colou?r matcht beide spellingen.

Ankers koppelen een patroon aan een positie in plaats van een teken. ^ matcht het begin van de tekst, $ matcht het einde, en \b markeert een woordgrens. Het patroon ^Fout matcht alleen regels die beginnen met "Fout", wat precies is wat je wilt bij het doorzoeken van logbestanden.

Groepen wikkelen een deel van een patroon in haakjes, zowel om een kwantor op meerdere tekens tegelijk toe te passen als om de gematchte tekst vast te leggen voor hergebruik. In (\d{4})-(\d{2})-(\d{2}) legt elke groep een datumcomponent vast die je later kunt ophalen. Alternatie met het pipe-teken werkt als "of": kat|hond|vis matcht elk van de drie woorden.

Patronen die je in de praktijk echt nodig hebt

Een paar terugkerende taken dekken het meeste echte werk. Om iets e-mailachchtig te vangen, is [\w.+-]+@[\w-]+\.[\w.-]+ een pragmatisch beginpunt; volledige e-mailvalidatie volgens de formele specificatie is notoir ingewikkeld, en een los patroon is doorgaans de juiste keuze voor het markeren van kandidaten in plaats van gebruikers te weigeren.

Voor getallen pakt \d+ reeksen cijfers, terwijl -?\d+(\.\d+)? optionele negatieven en decimalen matcht. Om voor- en naloop-witruimte te trimmen, match je ^\s+|\s+$ en vervang je dat door niets. Om dubbele woorden te vinden, matcht het terugverwijzingspatroon \b(\w+)\s+\1\b een woord gevolgd door zichzelf, waarbij \1 terugverwijst naar de eerste vastgelegde groep.

Geselecteerde woorden die goud oplichten en gemarkeerd zijn binnen een vloeiende rivier van cyaan tekstachtige deeltjes op donker marineblauw
Live markering toont precies welke tekstgedeelten een patroon matcht.

Vlaggen veranderen hoe matching werkt

Vlaggen zijn schakelaars die het hele patroon aanpassen. De globale vlag (g) vindt elke match in plaats van bij de eerste te stoppen, wat je wilt wanneer je alle voorkomens markeert. De hoofdletterongevoelige vlag (i) zorgt ervoor dat fout zowel "Fout" als "FOUT" matcht. De meerregelige vlag (m) verandert ^ en $ zodat ze matchen aan het begin en einde van elke regel, niet alleen de hele tekst, wat essentieel is voor regel-voor-regel logwerk. Andere nuttige vlaggen zijn s (dotall, waarbij de punt ook newlines matcht) en u voor volledige Unicode-verwerking.

Smaken verschillen lichtjes per taal

Regex is een familie van dialecten, niet één vaste standaard. JavaScript, Python, PCRE (PHP), Java, .NET, Go en Rust zijn het eens over de bovenstaande kernsyntax, maar ze wijken af aan de randen: ondersteuning voor lookbehind, syntaxis voor benoemde groepen ((?<naam>...) versus (?P<naam>...)), Unicode-eigenschapsentscapes, en welke vlaggen er zijn, variëren allemaal. Een patroon dat in de ene engine werkt, heeft misschien een kleine aanpassing nodig in een andere, dus het loont te testen met de smaak die je daadwerkelijk gebruikt. Als je een patroon eenmaal hebt verfijnd, kunnen onze andere ontwikkelaarstools en teksttools helpen met het omringende werk van opschonen, coderen en transformeren van de data die je zojuist hebt gematcht.

Veelgestelde vragen

Wordt mijn tekst naar een server gestuurd?

Nee. De Regex-tester draait volledig in je browser. Je patroon en voorbeeldtekst blijven op je apparaat en worden nooit geüpload, dus het is veilig om gevoelige data te plakken.

Welke regex-smaak gebruikt dit tool?

Het gebruikt de JavaScript-regex-engine ingebouwd in je browser. De kernsyntax komt overeen met wat je kent van de meeste talen, hoewel sommige geavanceerde functies licht afwijken van PCRE, Python of .NET.

Wat is het verschil tussen hebzuchtig en lui matchen?

Standaard zijn kwantoren hebzuchtig en pakken ze zoveel tekst mogelijk. Een vraagteken toevoegen maakt ze lui, zodat ze zo weinig mogelijk pakken. Zo is het patroon punt-ster hebzuchtig, terwijl punt-ster-vraagteken lui is.

Hoe match ik een letterlijk speciaal teken?

Zet er een backslash voor. Om een echte punt te matchen, schrijf je backslash-punt. Hetzelfde geldt voor andere metatekens zoals haakjes, vierkante haken, het plusteken en het vraagteken.

Waarom matcht mijn patroon niets?

Veelvoorkomende oorzaken zijn een ontbrekende globale vlag, ankers die de match aan de verkeerde positie koppelen, een niet-geëscaped speciaal teken, of hebzuchtige kwantoren die de grens die je verwachtte overstromen. Test stuk voor stuk om de schuldige te vinden.

Kan ik delen van de match vastleggen?

Ja. Wikkel een gedeelte van het patroon in haakjes om een vastleggroep te maken. Elke groep wordt afzonderlijk gerapporteerd, waardoor je velden kunt extraheren zoals het jaar, de maand en de dag uit een datum.