Direct naar de hoofdinhoud
Module 7 · Les 4 van 428/32 in de cursus~10 min
Modulelessen (4/4)

Splitsen met regex

String.prototype.split(separator) accepteert niet alleen een vaste tekenreeks, maar ook een regex als scheidingsteken. Dit maakt het een krachtig hulpmiddel om te tokeniseren gestructureerde tekst.

JS
'uno, due,tre  quattro'.split(/[,\s]+/);
// ["uno", "due", "tre", "quattro"]

De regex /[,\s]+/ komt overeen met "een of meer komma's of witruimten": splitsen splitst op elk samengesteld scheidingsteken.

Typische gevallen

  • Permissieve CSV: text.split(/\s*,\s*/) om spaties rond komma's af te handelen.
  • Naïeve tokenizer: text.split(/\s+/) om woorden te extraheren.
  • Behoud het scheidingsteken: als de regex vastgelegde groepen bevat, wordt de inhoud van de groepen is opgenomen in de resultaatarray.
JS
'a=1; b=2; c=3'.split(/(;)\s*/);
// ["a=1", ";", "b=2", ";", "c=3"]

Zonder de groep () zou de puntkomma verdwijnen. Met (;) behoud je het in het resultaat.

Behoud van afscheiders bij splitoperaties

Als u gesplitste scheidingstekens binnen de vastgelegde haakjes plaatst, zal de uitvoer van String.prototype.split de scheidingstekens zelf als elementen in de uiteindelijke array opnemen, in plaats van ze weg te gooien.

Probeer het

Oefening#regex.m7.l4.e1
Pogingen: 0Laden…

Zoek elk tolerant CSV-scheidingsteken: een komma met optionele spaties eromheen. Op deze manier kunt u het gesplitst gebruiken om de lijst te tokeniseren.

Editor laden…
Toon hint

Gebruik \\s* voor en na de komma om eventuele optionele spaties op te nemen.

Oplossing beschikbaar na 3 pogingen

Oefening beoordelen

Oefening#regex.m7.l4.e2
Pogingen: 0Laden…

Zoek elk scheidingsteken voor spaties of puntkomma's (een of meer). Op deze manier zou splitsen de tekst in woorden omzetten.

Editor laden…
Toon hint

Combineer \\s en ; in een klasse [\\s;] met de + kwantor.

Oplossing beschikbaar na 3 pogingen

Extra uitdaging

Oefening#regex.m7.l4.e3
Pogingen: 0Laden…

Write a regex to use in a split that separates numbers while keeping math operators `+`, `-`, `*`, `/` as elements of the array.

Editor laden…
Toon hint

Enclose the math operators character class in capture parentheses to preserve them in the split array.

Oplossing beschikbaar na 3 pogingen