Naar hoofdinhoud springen
FreeOnlineTools Go
Nederlands
Referentie

Reguliere Expressies Cheat Sheet: Syntaxis, Flags en Patronen

Door FreeOnlineTools Team · Bijgewerkt op 2026-08-28

Snel antwoord

Een regex combineert literal characters, metacharacters (., \d, \w, \s), quantifiers (*, +, ?, {n,m}), anchors (^, $, \b) en groups ((...), [...]). Flags zoals g (global), i (case-insensitive), m (multiline) veranderen match-gedrag. Test patronen live met onze Regex Tester.

Invoering

Reguliere expressies (regex) beschrijven tekstpatronen met een compacte formele taal. Ze worden ondersteund door elke moderne programmeertaal, editor en zoektool. Dit cheat sheet is een referentie voor de syntaxis gedefinieerd door ECMAScript plus veelvoorkomende patronen die je kunt kopiëren en aanpassen. Gebruik onze Regex Tester om elk patroon tegen voorbeeldtekst te testen.

Stap voor stap

  1. Karakterklassen — komen overeen met een reeks karakters

    [abc] komt overeen met a, b of c. [^abc] komt overeen met alles behalve a, b, c. [a-z] komt overeen met elke kleine letter. Voorgedefinieerde klassen: \d = [0-9], \D = niet-cijferig, \w = [A-Za-z0-9_], \W = niet-woord, \s = witruimte, \S = niet-witruimte, . = elk teken behalve nieuwe regel (gebruik de vlag s om nieuwe regel op te nemen).

  2. Kwantificatoren: hoe vaak te herhalen

    * = 0 of meer. + = 1 of meer. ? = 0 of 1. {n} = precies n. {n,} = minstens n. {n,m} = tussen n en m. Toevoegen ? voor luie matching (bijvoorbeeld *? komt overeen met zo weinig mogelijk). Hebzuchtig is de standaardinstelling en kan catastrofale terugtrekking op geneste patronen veroorzaken.

  3. Ankers en grenzen – waar ze bij elkaar passen

    ^ komt overeen met het begin van de tekenreeks (of lijn met m-vlag). $ komt overeen met het einde. \b komt overeen met een woordgrens (tussen \w en \W). \B komt overeen met een niet-woordgrens. Ankers hebben een breedte van nul: ze testen de positie zonder tekens te verbruiken.

  4. Groepen en afwisseling

    (abc) is een vanggroep; gebruik $1, $2 aan vervangingen. (?:abc) is een niet-vastleggende groep. (?=abc) is een vooruitblik (beweert wat volgt). (?!abc) is een negatieve vooruitblik. (?<=abc) is een lookbehind (ES2018+). a|b is afwisseling (a of b).

  5. Vlaggen: verander het matchinggedrag

    g = globaal (vind alle overeenkomsten, niet alleen de eerste). i = hoofdletterongevoelig. m = meerdere regels (^ en $ komen overeen met lijngrenzen). s = dotAll (. komt overeen met nieuwe regel). u = Unicode (behandel het patroon als Unicode-codepunten; nodig voor emoji- en astral-tekens). y = sticky (komt alleen overeen met lastIndex).

Voorbeelden

Match een e-mailadres (praktisch, RFC 5322 vereenvoudigd)

Invoer: Pattern: /^[^\s@]+@[^\s@]+\.[^\s@]+$/

Uitvoer: Komt overeen met 'gebruiker@voorbeeld.com' en 'a.b@sub.domein.co', maar niet met 'gewoon adres' of '@geen-gebruiker.com'

Extraheer alle hexadecimale kleurcodes uit CSS

Invoer: Pattern: /#[0-9a-fA-F]{3,8}\b/g

Uitvoer: In 'color: #fff; background: #1a2b3c4d' finds ['#fff', '#1a2b3c4d']

Valideer een ISO 8601-datum (JJJJ-MM-DD)

Invoer: Pattern: /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/

Uitvoer: Komt overeen met '2026-08-28' maar wijst '2026-13-01' en '2026-02-31' af

Vervang cijfers door # met behulp van een vastleggroep

Invoer: 'Bestelling 42 verzonden' vervangen door /(\d+)/g →'#$1'

Uitvoer: 'Bestelling #42 verzonden'

Veelvoorkomende problemen

  • Hebzuchtige kwantoren die te veel overeenkomen: '<.*>' op '<a><b>' komt overeen met de hele tekenreeks '<a><b>' in plaats van '<a>'. Gebruik '<.*?>' (lui) om eerst '<a>' te matchen.
  • Catastrofale backtracking: geneste kwantoren zoals (a+)+b op invoer 'aaaaaaaaaaaaaaaa!' kan exponentiële tijd duren. Herschrijf het patroon of gebruik atomaire groepen/bezittelijke kwantoren waar ondersteund.
  • De u-vlag voor Unicode vergeten: /^.$/ komt overeen met een enkele code-eenheid, dus emoji zoals '😀' (twee code-eenheden) mislukt zonder de u-vlag. Voeg altijd u toe bij het matchen van astrale karakters.
  • \b (woordgrens) verwarren met \s (spatie): \b komt overeen tussen een woord- en niet-woordteken, dus het werkt ook aan het begin/einde van de tekenreeks. \s komt alleen overeen met daadwerkelijke witruimtetekens.

Tips

  • Test regex altijd met zowel overeenkomende als niet-overeenkomende voorbeelden in onze Regex Tester voordat u deze in productiecode insluit. Randgevallen zijn gemakkelijk over het hoofd te zien.
  • Geef de voorkeur aan karakterklassen [a-z] boven afwisseling (a|b|...|z) voor afzonderlijke karakters: klassen zijn sneller en duidelijker.
  • Gebruik niet-vastleggende groepen (?:...) als u de vastgelegde waarde niet nodig hebt. Vastleggen brengt kleine prestatiekosten met zich mee en maakt de resultaatarray onoverzichtelijk.
  • Compileer regex één keer met nieuwe RegExp() of een letterlijke modulescope, niet binnen een hot loop. Het opnieuw compileren van hetzelfde patroon bij elke iteratie verspilt CPU.

Gerelateerde hulpmiddelen

Gerelateerde gidsen

Referenties