Vai al contenuto
eLearner.app
Modulo 7 · Lezione 4 di 428/32 nel corso~10 min
Lezioni del modulo (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

Esercizio#regex.m7.l4.e1
Tentativi: 0Caricamento…

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

Caricamento editor…
Mostra suggerimento

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

Soluzione disponibile dopo 3 tentativi

Esercizio di ripasso

Esercizio#regex.m7.l4.e2
Tentativi: 0Caricamento…

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

Caricamento editor…
Mostra suggerimento

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

Soluzione disponibile dopo 3 tentativi

Sfida aggiuntiva

Esercizio#regex.m7.l4.e3
Tentativi: 0Caricamento…

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

Caricamento editor…
Mostra suggerimento

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

Soluzione disponibile dopo 3 tentativi