Passer au contenu principal
eLearner.app
Module 7 · Leçon 4 sur 428/32 dans le cours~10 min
Leçons du module (4/4)

Split con regex

String.prototype.split(separator) accetta non solo una stringa fissa ma anche una regex come separatore. Diventa cosi' uno strumento potente per tokenizzare testo strutturato.

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

La regex /[,\s]+/ matcha "una o piu' tra virgola o whitespace": split suddivide su qualsiasi delimitatore composto.

Casi tipici

  • CSV permissivo: text.split(/\s*,\s*/) per gestire spazi attorno alle virgole.
  • Tokenizer naive: text.split(/\s+/) per estrarre parole.
  • Mantenere il separatore: se la regex contiene gruppi catturanti, il contenuto dei gruppi viene incluso nell'array risultato.
JS
'a=1; b=2; c=3'.split(/(;)\s*/);
// ["a=1", ";", "b=2", ";", "c=3"]

Senza il gruppo () il punto-virgola sparirebbe. Con (;) lo conservi nel risultato.

Conservare i delimitatori nello split

Se inserisci i delimitatori all'interno di parentesi tonde di cattura, l'output di String.prototype.split includerà anche i separatori stessi all'interno dell'array finale, invece di scartarli.

Prova tu

Exercice#regex.m7.l4.e1
Tentatives : 0Chargement…

Trova ogni separatore CSV permissivo: una virgola con eventuali spazi attorno. Cosi' potresti usarlo in split per tokenizzare la lista.

Chargement de l'éditeur…
Afficher l'indice

Usa \\s* prima e dopo la virgola per assorbire eventuali spazi opzionali.

Solution disponible après 3 tentatives

Esercizio di ripasso

Exercice#regex.m7.l4.e2
Tentatives : 0Chargement…

Trova ogni separatore 'spazi o punto-e-virgola' (uno o piu'). Cosi' split tokenizzerebbe il testo come parole.

Chargement de l'éditeur…
Afficher l'indice

Combina \\s e ; in una classe [\\s;] con quantificatore +.

Solution disponible après 3 tentatives

Sfida aggiuntiva

Exercice#regex.m7.l4.e3
Tentatives : 0Chargement…

Scrivi una regex da usare in uno split che separi i numeri tenendo anche gli operatori matematici `+`, `-`, `*`, `/` come elementi dell'array.

Chargement de l'éditeur…
Afficher l'indice

Racchiudi la classe di caratteri degli operatori matematici tra parentesi tonde di cattura per preservarli durante lo split.

Solution disponible après 3 tentatives