Перейти до основного вмісту
Модуль 7 · Урок 4 із 428/32 у курсі~10 min
Модульні уроки (4/4)

Розділити за допомогою регулярного виразу

String.prototype.split(separator) приймає не тільки фіксований рядок, але також регулярний вираз як роздільник. Це робить його потужним інструментом для токенізації структурований текст.

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

Регулярний вираз /[,\s]+/ відповідає "один або кілька з коми або пробілу": split розбивається на будь-який складений роздільник.

Типові випадки

  • Дозвільний CSV: text.split(/\s*,\s*/) для обробки пробілів навколо ком.
  • Наївний токенізер: text.split(/\s+/) для вилучення слів.
  • Зберігати роздільник: якщо регулярний вираз містить групи захоплення, вміст груп включається в масив результатів.
JS
'a=1; b=2; c=3'.split(/(;)\s*/);
// ["a=1", ";", "b=2", ";", "c=3"]

Без групи () крапка з комою зникне. З (;) ви зберігаєте його в результаті.

Збереження роздільників в операціях розділення

Якщо ви розмістите роздільні роздільники в дужках для захоплення, вихід String.prototype.split включатиме самі роздільники як елементи остаточного масиву, а не відкидає їх.

Спробуйте

вправи#regex.m7.l4.e1
Спроби: 0Завантаження…

Знайдіть кожен дозволений роздільник CSV: кома з необов’язковими пробілами навколо неї. Таким чином ви можете використовувати його в розділенні, щоб токенізувати список.

Завантаження редактора…
Показати підказку

Використовуйте \\s* перед і після коми, щоб поглинути будь-які додаткові пробіли.

Рішення доступне після 3 спроб

Повторна вправа

вправи#regex.m7.l4.e2
Спроби: 0Завантаження…

Знайдіть кожен роздільник «пробілів або крапок з комою» (один або кілька). Таким чином split розділить текст на слова.

Завантаження редактора…
Показати підказку

Поєднати \\s і ; у класі [\\s;] з квантором +.

Рішення доступне після 3 спроб

Додатковий виклик

вправи#regex.m7.l4.e3
Спроби: 0Завантаження…

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

Завантаження редактора…
Показати підказку

Enclose the math operators character class in capture parentheses to preserve them in the split array.

Рішення доступне після 3 спроб