0Pricing
JavaScript Academy · Урок

Группы, захваты и замена

Захватывайте части текста группами, используйте именованные группы, перебирайте все совпадения и безопасно выполняйте замены с обратными ссылками или функцией

«Группы, захваты и замена» — бесплатный урок JavaScript Academy на CoddyKit. Это урок 2 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения JavaScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс JavaScript Academy содержит 3 уроков всего.

Зачем нужны группы?

Цель: извлекать и преобразовывать текст.

  • Группы захвата: (...)
  • Именованные группы: (?<name>...)
  • matchAll для перебора всех результатов
  • replace с помощью $1 или функции
Группы, захваты и замена — иллюстрация 1

Нумерованные группы

Используйте (...), чтобы захватывать части текста. Обращайтесь к ним по индексу: m[1], m[2], ...

// Capture YYYY-MM-DD into groups
const r = /(\\d{4})-(\\d{2})-(\\d{2})/;
const m = r.exec("Today: 2025-09-26");
if (m) {
  console.log("year:", m[1], "month:", m[2], "day:", m[3]);
} else {
  console.log("no match");
}
Группы, захваты и замена — иллюстрация 2

Именованные группы

Именованные группы добавляют понятные ключи через m.groups.name.

// Named groups make code clearer
const rx = /(?<y>\\d{4})-(?<m>\\d{2})-(?<d>\\d{2})/;
const hit = rx.exec("Release 2024-01-05");
if (hit) {
  console.log("y:", hit.groups.y, "m:", hit.groups.m, "d:", hit.groups.d);
}
Группы, захваты и замена — иллюстрация 3

Перебор совпадений

matchAll возвращает итератор; используйте его с g, чтобы перебрать каждое совпадение и прочитать группы.

// matchAll with the g flag to get every match and groups
const text = "IDs: A-12, B-7, C-300";
const pattern = /([A-Z])-(\\d+)/g;

for (const match of text.matchAll(pattern)) {
  console.log("letter:", match[1], "num:", match[2]);
}
Группы, захваты и замена — иллюстрация 4

Замена с помощью групп

replace может использовать $1, $2 или функцию обратного вызова для создания нового текста.

// Replace order: "2025-09-26" -> "26/09/2025"
const date = "2025-09-26";

// With backreferences
const swapped1 = date.replace(/(\\d{4})-(\\d{2})-(\\d{2})/, "$3/$2/$1");
console.log("swap1:", swapped1);

// With a function for more control
const swapped2 = date.replace(/(?<y>\\d{4})-(?<m>\\d{2})-(?<d>\\d{2})/, function (_all, _y, _m, _d, groups) {
  return groups.d + "/" + groups.m + "/" + groups.y;
});
console.log("swap2:", swapped2);
Группы, захваты и замена — иллюстрация 5

Советы и подводные камни

Советы:

  • Добавляйте g, когда нужны все совпадения (используйте matchAll).
  • Для ясности отдавайте предпочтение именованным группам.
  • Делайте шаблоны небольшими; проверяйте их на коротких примерах строк.
Группы, захваты и замена — иллюстрация 6

Тест по основам matchAll

Быстрая проверка: перебор всех совпадений с группами.

Группы, захваты и замена — иллюстрация 7

Повторение

Повторение: захватывайте текст с помощью (...), для ясности используйте именованные группы, перебирайте все совпадения через matchAll и преобразуйте текст с помощью replace, обратных ссылок или функции обратного вызова.

Группы, захваты и замена — иллюстрация 8

Часто задаваемые вопросы

Урок «Группы, захваты и замена» бесплатный?

Да — полный текст урока «Группы, захваты и замена» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс JavaScript Academy, подпишись на CoddyKit PRO. Курс JavaScript Academy содержит 3 уроков всего.

Чему я научусь в уроке «Группы, захваты и замена»?

Захватывайте части текста группами, используйте именованные группы, перебирайте все совпадения и безопасно выполняйте замены с обратными ссылками или функцией Ты практикуешь JavaScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать JavaScript Academy?

Предыдущий опыт не требуется. JavaScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 3.

Сколько времени занимает урок «Группы, захваты и замена»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке JavaScript Academy?

Да. Каждый урок JavaScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы регулярных выражений — литералы, test, якоря и флаги
  2. Группы, захваты и замена
  3. Проверка данных и небольшие подводные камни
← Назад к JavaScript Academy