0Pricing
Ruby Academy · Lekcja

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_captures

Nazwane 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
end

Kotwice: 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>...) i named_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

  1. Literały wyrażeń regularnych
  2. Dopasowywanie i przechwytywanie
  3. Podstawianie
  4. Nazwane grupy i kotwice
← Powrót do Ruby Academy