Группы, захваты и замена
Захватывайте части текста группами, используйте именованные группы, перебирайте все совпадения и безопасно выполняйте замены с обратными ссылками или функцией
«Группы, захваты и замена» — бесплатный урок JavaScript Academy на CoddyKit. Это урок 2 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения JavaScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс JavaScript Academy содержит 3 уроков всего.
Зачем нужны группы?
Цель: извлекать и преобразовывать текст.
- Группы захвата: (...)
- Именованные группы: (?<name>...)
- matchAll для перебора всех результатов
- replace с помощью $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");
}

Именованные группы
Именованные группы добавляют понятные ключи через 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);
}

Перебор совпадений
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]);
}

Замена с помощью групп
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);

Советы и подводные камни
Советы:
- Добавляйте g, когда нужны все совпадения (используйте matchAll).
- Для ясности отдавайте предпочтение именованным группам.
- Делайте шаблоны небольшими; проверяйте их на коротких примерах строк.

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

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

Часто задаваемые вопросы
Урок «Группы, захваты и замена» бесплатный?
Да — полный текст урока «Группы, захваты и замена» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 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 — локальная установка не требуется.
Все уроки этого курса
- Основы регулярных выражений — литералы, test, якоря и флаги
- Группы, захваты и замена
- Проверка данных и небольшие подводные камни