Lecții din modul (4/4)
Împărțiți cu regex
String.prototype.split(separator) acceptă nu numai un șir fix, dar
de asemenea, un regex ca separator. Acest lucru îl face un instrument puternic de tokenizare
text structurat.
'uno, due,tre quattro'.split(/[,\s]+/);
// ["uno", "due", "tre", "quattro"]Expresia regex /[,\s]+/ se potrivește cu „una sau mai multe dintre virgulă sau spațiu”: split
se divide pe orice delimitator compus.
Cazuri tipice
- CSV permisiv:
text.split(/\s*,\s*/)pentru a gestiona spațiile în jurul virgulelor. - Tokenizer naiv:
text.split(/\s+/)pentru a extrage cuvinte. - Păstrează separatorul: dacă regex conține grupuri de captare, conținutul grupurilor este inclus în tabloul de rezultate.
'a=1; b=2; c=3'.split(/(;)\s*/);
// ["a=1", ";", "b=2", ";", "c=3"]Fără grupul () punctul și virgulă ar dispărea. Cu (;) îl păstrați
în rezultat.
Păstrarea separatoarelor în operațiuni de split
Dacă plasați separatori împărțiți în parantezele de capturare, rezultatul String.prototype.split va include separatorii înșiși ca elemente în tabloul final, în loc să le arunce.
Încearcă
Găsiți fiecare separator CSV permisiv: o virgulă cu spații opționale în jurul său. În acest fel, l-ați putea folosi în split pentru a tokeniza lista.
Afișează indiciu
Folosiți \\s* înainte și după virgulă pentru a absorbi orice spațiu opțional.
Soluție disponibilă după 3 încercări
Exercițiu de revizuire
Găsiți fiecare separator de „spații sau punct și virgulă” (unul sau mai multe). În acest fel, împărțirea ar simboliza textul în cuvinte.
Afișează indiciu
Combinați \\s și ; într-o clasă [\\s;] cu cuantificatorul +.
Soluție disponibilă după 3 încercări
Provocare suplimentară
Write a regex to use in a split that separates numbers while keeping math operators `+`, `-`, `*`, `/` as elements of the array.
Afișează indiciu
Enclose the math operators character class in capture parentheses to preserve them in the split array.
Soluție disponibilă după 3 încercări