Przejdź do głównej treści
eLearner.app
Moduł 7 · Lekcja 4 z 428/32 w kursie~10 min
Lekcje modułu (4/4)

Split z regexem

Metoda String.prototype.split(separator) akceptuje jako separator nie tylko stały ciąg znaków, ale również wyrażenie regularne. Dzięki temu jest to potężne narzędzie do tokenizacji tekstu strukturalnego.

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

Wyrażenie /[,\s]+/ dopasowuje "jeden lub więcej przecinków lub białych znaków": split dzieli tekst według dowolnego złożonego ogranicznika.

Typowe przypadki

  • Tolerancyjny format CSV: text.split(/\s*,\s*/) w celu obsługi spacji wokół przecinków.
  • Prosty tokenizator: text.split(/\s+/) w celu wyodrębnienia słów.
  • Zachowanie separatora: jeśli wyrażenie regularne zawiera grupy przechwytujące, zawartość tych grup jest dołączana do wynikowej tablicy.
JS
'a=1; b=2; c=3'.split(/(;)\s*/);
// ["a=1", ";", "b=2", ";", "c=3"]

Bez grupy (), średnik by zniknął. Z grupą (;) zachowujesz go w tablicy wynikowej.

Zachowywanie separatorów w operacjach split

Jeśli umieścisz separatory w nawiasach przechwytujących, wynik działania metody String.prototype.split będzie zawierał same separatory jako elementy w wynikowej tablicy, zamiast je odrzucać.

Spróbuj sam

Ćwiczenie#regex.m7.l4.e1
Próby: 0Ładowanie...

Znajdź każdy tolerancyjny separator CSV: przecinek z opcjonalnymi spacjami wokół niego. W ten sposób można użyć go w split, aby tokenizować listę.

Ładowanie edytora...
Pokaż wskazówkę

Użyj \s* przed i po przecinku, aby wchłonąć wszelkie opcjonalne spacje.

Rozwiązanie dostępne po 3 próbach

Ćwiczenie powtórzeniowe

Ćwiczenie#regex.m7.l4.e2
Próby: 0Ładowanie...

Znajdź każdy separator typu 'spacje lub średniki' (jeden lub więcej). W ten sposób split podzieli tekst na słowa.

Ładowanie edytora...
Pokaż wskazówkę

Połącz \s i ; w klasie [\s;] za pomocą kwantyfikatora +.

Rozwiązanie dostępne po 3 próbach

Dodatkowe wyzwanie

Ćwiczenie#regex.m7.l4.e3
Próby: 0Ładowanie...

Napisz wyrażenie regularne do użycia w split, które oddziela liczby, zachowując jednocześnie operatory matematyczne `+lock_content`, `-`, `*`, `/` jako elementy tablicy.

Ładowanie edytora...
Pokaż wskazówkę

Umieść klasę znaków operatorów matematycznych w nawiasach przechwytujących, aby zachować je w tablicy po podziale.

Rozwiązanie dostępne po 3 próbach