Nazwane grupy i kotwice
Zaawansowane wyrażenia regularne
Nazwane grupy i kotwice to bezpłatna lekcja Ruby Academy na CoddyKit. To lekcja 4 z 4. 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 Ruby Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ruby Academy zawiera 4 lekcji w sumie.
Dlaczego warto używać nazwanych grup?
Numerowane przechwycone wartości, takie jak m[1], stają się trudne do odczytania, gdy wzorzec się rozrasta. Nazwane grupy nadają każdej przechwyconej wartości znaczącą etykietę.
Składnia: (?<name>pattern).
m = /(?<year>\d{4})-(?<month>\d{2})/.match('2026-05')
puts(m[:year])
puts(m[:month])Dostęp do nazwanych przechwyconych wartości
Dostęp do nazwanych przechwyconych wartości można uzyskać za pomocą klucza typu Symbol lub String: m[:name]. Metoda named_captures zwraca wszystkie te wartości jako Hash.
m = /(?<user>\w+)@(?<host>\w+)/.match('alice@mail')
p m.named_capturesNazwane grupy z =~
Gdy po lewej stronie operatora =~ znajduje się literał wyrażenia regularnego z nazwanymi grupami, Ruby automatycznie tworzy zmienne lokalne dla każdej nazwy.
if /(?<word>\w+)/ =~ 'hello'
puts word
endKotwice: początek i koniec
Kotwice dopasowują pozycje, a nie znaki:
^początek wiersza$koniec wiersza
Są kluczowe podczas sprawdzania, czy cały tekst wejściowy pasuje do wzorca.
puts(/^abc/.match?('abcdef'))
puts(/def$/.match?('abcdef'))
puts(/^abc$/.match?('abcdef'))Kotwice ciągu znaków \A i \z
^ i $ dopasowują granice wierszy, co ma znaczenie w przypadku ciągów wielowierszowych. Dla całego ciągu znaków należy preferować \A (początek) i \z (sam koniec).
text = "first\nsecond"
puts(/^second/.match?(text))
puts(/\Asecond/.match?(text))Walidacja całego wejścia
Aby sprawdzić, czy cały ciąg znaków pasuje do określonego formatu, należy zakotwiczyć oba jego końce. Odrzuca to ciągi zawierające dodatkowe znaki.
zip = /\A\d{5}\z/
puts(zip.match?('34000'))
puts(zip.match?('34000x'))Granice słów
\b to granica słowa: pozycja między znakiem słowa a znakiem, który nim nie jest. Dopasowuje całe słowa, nie zużywając żadnych znaków.
puts('cat catalog'.scan(/\bcat\b/).length)
puts('cat catalog'.scan(/cat/).length)Lookahead
Dodatni lookahead (?=...) sprawdza, co znajduje się dalej, bez uwzględniania tego w dopasowaniu. Ujemny lookahead zapisuje się jako (?!...).
puts('100 dollars'.match(/\d+(?= dollars)/)[0])
puts('apple pie'.match?(/apple(?! juice)/))Lookbehind
Lookbehind (?<=...) sprawdza, co znajduje się przed dopasowaniem. Ujemny lookbehind zapisuje się jako (?<!...).
m = '$42'.match(/(?<=\$)\d+/)
puts(m[0])Grupy nieprzechwytujące
Czasami grupowanie jest potrzebne do zastosowania alternatywy lub kwantyfikatorów, ale nie chcą Państwo przechwytywać wartości. W takim przypadku należy użyć (?:...), czyli grupy nieprzechwytującej.
m = /(?:Mr|Ms)\. (\w+)/.match('Ms. Lee')
p m.capturesŁączenie wszystkiego
Rzeczywisty walidator wykorzystuje jednocześnie kotwice, nazwane grupy i kwantyfikatory.
re = /\A(?<area>\d{3})-(?<num>\d{4})\z/
m = re.match('555-1234')
puts(m[:area])
puts(m[:num])Szybkie sprawdzenie
Jakich kotwic należy użyć, aby mieć pewność, że dopasowany zostanie cały ciąg znaków, niezależnie od znaków nowej linii?
Podsumowanie: nazwane grupy i kotwice
Opanowałeś zaawansowane narzędzia wyrażeń regularnych:
- Nazwane grupy
(?<name>...)inamed_captures - Kotwice
^ $ \A \z \b - Lookahead
(?=)/(?!)oraz lookbehind(?<=)/(?<!) - Grupy nieprzechwytujące
(?:...)
puts(/\A(?<id>\d+)\z/.match('42')[:id])Często zadawane pytania
Czy lekcja „Nazwane grupy i kotwice” jest bezpłatna?
Tak — pełny tekst „Nazwane grupy i kotwice” 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 Ruby Academy, przejdź na CoddyKit PRO. Kurs Ruby Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Nazwane grupy i kotwice”?
Zaawansowane wyrażenia regularne Ćwiczysz Ruby 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ąć Ruby Academy?
Nie wymagamy żadnego doświadczenia. Ruby 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 4 z 4.
Ile czasu zajmuje lekcja „Nazwane grupy i kotwice”?
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 Ruby Academy?
Tak. Każda lekcja Ruby 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
- Literały wyrażeń regularnych
- Dopasowywanie i przechwytywanie
- Podstawianie
- Nazwane grupy i kotwice