Salt la conținutul principal
Modulul 7 · Lecția 4 din 428/32 în curs~10 min
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.

JS
'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.
JS
'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ă

Exercițiu#regex.m7.l4.e1
Încercări: 0Se încarcă…

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.

Se încarcă editorul...
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

Exercițiu#regex.m7.l4.e2
Încercări: 0Se încarcă…

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.

Se încarcă editorul...
Afișează indiciu

Combinați \\s și ; într-o clasă [\\s;] cu cuantificatorul +.

Soluție disponibilă după 3 încercări

Provocare suplimentară

Exercițiu#regex.m7.l4.e3
Încercări: 0Se încarcă…

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

Se încarcă editorul...
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