Grupy, przechwytywanie i zamiana
Przechwytywanie fragmentów tekstu za pomocą grup, używanie grup nazwanych, iterowanie po wszystkich dopasowaniach oraz bezpieczne zamiany z użyciem odwołań wstecznych lub funkcji
Grupy, przechwytywanie i zamiana to bezpłatna lekcja JavaScript Academy na CoddyKit. To lekcja 2 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej JavaScript Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs JavaScript Academy zawiera 3 lekcji w sumie.
Po co grupy?
Cel: Wyodrębnianie i przekształcanie tekstu.
- Grupy przechwytujące: (...)
- Grupy nazwane: (?<name>...)
- matchAll do iterowania po wszystkich wynikach
- replace z użyciem $1 lub funkcji

Grupy numerowane
Za pomocą (...) można przechwytywać fragmenty. Dostęp do nich uzyskuje się przez indeks: 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");
}

Grupy nazwane
Grupy nazwane dodają czytelne klucze dostępne przez 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);
}

Iterowanie po dopasowaniach
matchAll zwraca iterator; należy używać go razem z g, aby przejść po każdym dopasowaniu i odczytać grupy.
// 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]);
}

Zastępowanie z użyciem grup
replace może używać $1, $2 lub funkcji callback do tworzenia nowego tekstu.
// 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);

Wskazówki i pułapki
Wskazówki:
- Należy dodać g, gdy potrzebne są wszystkie dopasowania (i używać matchAll).
- Dla większej czytelności warto preferować grupy nazwane.
- Wzorce powinny być krótkie; należy je testować na krótkich przykładowych ciągach.

Quiz: podstawy matchAll
Szybkie sprawdzenie: iterowanie po wszystkich dopasowaniach z grupami.

Podsumowanie
Podsumowanie: Należy przechwytywać fragmenty za pomocą (...), używać grup nazwanych dla większej czytelności, iterować po wszystkich dopasowaniach za pomocą matchAll oraz przekształcać tekst przy użyciu replace i odwołań wstecznych lub funkcji callback.

Często zadawane pytania
Czy lekcja „Grupy, przechwytywanie i zamiana” jest bezpłatna?
Tak — pełny tekst „Grupy, przechwytywanie i zamiana” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu JavaScript Academy, przejdź na CoddyKit PRO. Kurs JavaScript Academy zawiera 3 lekcji w sumie.
Co nauczysz się w „Grupy, przechwytywanie i zamiana”?
Przechwytywanie fragmentów tekstu za pomocą grup, używanie grup nazwanych, iterowanie po wszystkich dopasowaniach oraz bezpieczne zamiany z użyciem odwołań wstecznych lub funkcji Ćwiczysz JavaScript Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć JavaScript Academy?
Nie wymagamy żadnego doświadczenia. JavaScript Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 3.
Ile czasu zajmuje lekcja „Grupy, przechwytywanie i zamiana”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji JavaScript Academy?
Tak. Każda lekcja JavaScript Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podstawy wyrażeń regularnych — literały, test, kotwice i flagi
- Grupy, przechwytywanie i zamiana
- Walidacja i drobne pułapki