technical

Van gewone taal naar regex

Regex vergeet je steeds weer. Beschrijven → Ryna AI schrijft, legt uit en geeft testcases.

Try one of these:

No credit card5 free questions leftTR & EN destekli

Ryna AI Editorial Team · Updated September 1, 2026

Je ziet het patroon helder voor je — 'vang telefoonnummers in dit formaat', 'haal datums uit logregels', 'laat alleen geldige e-mailadressen door' — maar zodra je bij de regex-syntaxis komt, loop je vast. Eén verkeerd geplaatste quantifier en het patroon matcht niets of alles; \d en \w lopen door elkaar; je gaat scheelkijken in de backslash-hel. Regex heeft ook een serieuze kant: in 2019 haalde één slecht geschreven patroon Cloudflare wereldwijd ongeveer 30 minuten offline via catastrophic backtracking. Een patroon dat er 'uitziet alsof het werkt', kan een productie-CPU vastzetten.

Je beschrijft aan Ryna AI in gewoon Nederlands (of Engels) wat je wilt matchen, geeft je taal/variant op (JavaScript, Python re, PCRE/PHP, .NET, Java, Go RE2, grep/POSIX) en krijgt het kant-en-klare patroon terug, een uitleg token voor token, teststrings die wél en die NIET mogen matchen, en aantekeningen over randgevallen (unicode, lege string, greedy vs lazy, ankers). Het werkt ook andersom: plak een cryptische regex en vraag 'wat doet dit?', of geef je patroon plus de invoer waarop het faalt en vraag 'waarom klapt dit?'

Zet regex nooit blind in productie: behandel het patroon van Ryna als een concept en test het tegen positieve én negatieve voorbeelden uit je eigen echte data. Het Free-plan geeft je tientallen berichten per dag — je kunt de hele dag door ruim patronen uitproberen en bijschaven. Een echt logbestand, CSV of screenshot uploaden om te zeggen 'genereer een patroon dat elk ordernummer in deze data vangt', of een ReDoS-analyse met diep nadenken van een complex patroon krijgen, vraagt om Plus (399,99 TL/maand).

Why use Ryna AI for this

Variant-bewuste output: JavaScript, Python re, PCRE/PHP, .NET, Java, Go RE2, grep/POSIX — Ryna gebruikt de juiste syntaxis voor lookbehind, benoemde groepen en unicodegedrag.

Uitleg token voor token: Ryna ontleedt wat elk stukje `\d`, `[^ ]`, `(?:...)`, `{2,4}` doet, zodat je het patroon begrijpt in plaats van het uit je hoofd te leren.

Automatische testset: Ryna levert voorbeeldstrings die wél EN die NIET mogen matchen, zodat je overmatching meteen doorhebt.

Dekking van randgevallen: Ryna wijst op lege string, unicodetekens, regeleinden, greedy vs lazy en verankerd versus niet-verankerd gedrag.

ReDoS-waarschuwing: Ryna markeert risico's op catastrophic backtracking zoals geneste quantifiers (a+)+ en stelt een veiliger alternatief patroon voor.

Werkt beide kanten op: Ryna maakt een patroon op basis van een beschrijving en legt een cryptische regex die je plakt in gewone taal uit, of debugt een kapotte.

Example prompts

Click any prompt to load it into the box above and run it right here. Each prompt is tuned for a different scenario — try them all to see how Ryna AI adapts.

How it works — step by step

  1. 1

    Beschrijf wat er moet matchen

    Beschrijf op chat.rynaai.com in gewone taal wat je wilt matchen: 'vang factuurnummers in dit formaat' of 'laat alleen e-mailadressen door die op .edu eindigen'. Hoe concreter je bent, hoe nauwkeuriger het patroon.

  2. 2

    Geef de variant en het doel op

    Welke taal/engine: 'JavaScript', 'Python re', 'PCRE', 'Go RE2', 'grep' — want lookbehind, benoemde groepen en het unicodegedrag van \d verschillen per variant. Zeg ook wat je doel is: validatie, of extractie uit een tekst?

  3. 3

    Geef positieve en negatieve voorbeelden

    Neem 3-4 strings mee die moeten matchen ÉN 3-4 die dat niet mogen: 'deze moeten slagen: ... deze moeten falen: ...'. Negatieve voorbeelden zijn het sterkste signaal tegen overmatching.

  4. 4

    Vraag om uitleg en tests

    Zeg 'leg het patroon token voor token uit en geef een testtabel met matchende en niet-matchende voorbeelden'. Zo zie je vóór het kopiëren wat werkt en waarom, en een junior developer leert er meteen van.

Example: input → output

You ask

JavaScript. Valideer een Amerikaans telefoonnummer: optionele +1, netnummer met of zonder haakjes, spaties of streepjes toegestaan. Geef voorbeelden die moeten matchen en die niet mogen matchen.

Ryna AI returns

```js /^(?:\+1[ -]?)?\(?\d{3}\)?[ -]?\d{3}[ -]?\d{4}$/ ``` **Opbouw per onderdeel** - `^ … $` — valideert de hele string van begin tot eind - `(?:\+1[ -]?)?` — optionele landcode +1 met scheidingsteken - `\(?\d{3}\)?` — netnummer van 3 cijfers, haakjes optioneel - `[ -]?` — optionele spatie of streepje als scheidingsteken - `\d{3}[ -]?\d{4}` — de resterende 7 cijfers **Testtabel** | Invoer | Resultaat | |---|---| | +1 (415) 555-2671 | matcht | | 415-555-2671 | matcht | | 4155552671 | matcht | | 415-555-267 | geen match (te kort) | | (415) 55-2671 | geen match (verkeerde groepering) | **Randgevallen:** Het patroon valideert alleen het *formaat*, niet of het nummer echt of actief is. Omdat de scheidingstekens los zijn, accepteert het ook ongebalanceerde haakjes zoals '415)-555-2671'; heb je strikte opmaak nodig, eis dan bij elkaar horende haakjes met een strengere groep. Er zitten geen geneste quantifiers in, dus geen ReDoS-risico, en het compileert ook netjes in Go RE2.

Pro tips

  • Geef niet alleen voorbeelden die moeten matchen, maar ook die NIET mogen matchen — negatieve voorbeelden voorkomen het beste dat het patroon te veel vangt.
  • Noem altijd de variant: lookbehind bestaat in JS en PCRE, maar niet in Go RE2; \d matcht in sommige varianten ook unicodecijfers — zeg [0-9] als je alleen ASCII wilt.
  • Vraag om 'benoemde groepen' voor de leesbaarheid — met (?<year>\d{4}) haal je captures op naam op in plaats van op index, wat in code veel beter te onderhouden is.
  • Vraag: 'is er ReDoS-risico door geneste quantifiers zoals (a+)+, en geef een veilige versie' — voor productiepatronen niet onderhandelbaar.
  • Scheid het valideren van de hele string van het zoeken erin: gebruik de ankers ^...$ om te valideren en laat ze weg bij zoeken/extraheren — anders wijs je geldige data af.
  • Vraag om zowel een 'strikte' als een 'soepele' versie van dezelfde klus — een voor het exacte formaat, een om de rommelige data uit de praktijk te vangen.

Common mistakes to avoid

  • Een patroon vragen zonder de variant te noemen — een lookbehind-patroon dat in JS werkt, compileert in Go RE2 niet eens.
  • Alleen positieve voorbeelden geven — het patroon matcht meer dan je bedoelde en levert op echte data stilletjes fout-positieven op.
  • Regex verwarren met e-mail'geldigheid' — een patroon vangt typefouten, maar kan niet controleren of de mailbox bestaat; voor bezorgbaarheid heb je SMTP/verificatie nodig.
  • Naar productie gaan zonder op echte data te testen — 'het compileert' is niet hetzelfde als 'het matcht correct'.
  • Blind een patroon met geneste quantifiers kopiëren — constructies als (.*)* zijn ReDoS-gevoelig en leggen bij grote invoer de CPU plat.

Who this is for

Developers, data-analisten, DevOps, iedereen die logs parseert.

FAQ

Welke talen en regex-varianten worden ondersteund?

JavaScript, Python re, PCRE/PHP, .NET, Java, Go RE2, Ruby en grep/POSIX. Noem je variant vooraf: RE2 ondersteunt geen lookaround en geen backreferences, en Ryna waarschuwt je en biedt een alternatief.

Valideert regex e-mailadressen perfect?

Nee. Een volledig RFC 5322-patroon is enorm en onpraktisch; regex vangt typefouten (ontbrekende @, dubbele punten), maar kan niet bevestigen dat de mailbox bestaat. Echte bezorgbaarheid vraagt om een verificatie-/SMTP-dienst — Ryna geeft je een patroon dat 'goed genoeg' is voor het doel.

Waarschuwt het voor catastrofaal backtracken / ReDoS?

Ja, vraag er gewoon om. Het markeert risico's door geneste quantifiers en stelt een veilig alternatief zonder backtracking voor, in RE2-stijl. Voor complexe patronen doet Deep Thinking in Plus een gedetailleerdere analyse.

Legt het een cryptische regex uit die ik al heb?

Ja, het werkt ook omgekeerd. Plak het patroon en Ryna legt het onderdeel voor onderdeel uit in gewoon Nederlands, met voorbeelden van wat het matcht en verborgen fouten (verkeerd anker, ontbrekende escape).

Kan ik een log of CSV uploaden om een patroon uit de data af te leiden?

Ja, maar het uploaden van bestanden, pdf's en screenshots is een Plus-functie (399,99 TL/maand). In het Free-plan plak je voorbeeldregels als tekst; je hebt tientallen berichten per dag, dus je kunt zo vaak itereren en verfijnen als je wilt.

Related use cases

Free — dozens of daily messages

No credit card. Plus at 399.99 TRY/mo unlocks image analysis, file analysis (PDF/Word/Excel), deep thinking, web research, and assistants.