0Pricing
Ruby Academy · Lekcja

Podstawianie

gsub ze wzorcami

Podstawianie to bezpłatna lekcja Ruby Academy na CoddyKit. To lekcja 3 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.

Zastępowanie tekstu za pomocą sub

String#sub zastępuje pierwsze dopasowanie wzorca ciągiem zastępującym. Oryginalny ciąg znaków nie zostaje zmieniony — metoda zwraca nowy ciąg.

s = 'hello world'
puts(s.sub(/world/, 'Ruby'))
puts s

Zastępowanie wszystkich dopasowań za pomocą gsub

gsub oznacza globalne zastępowanie. Zastępuje każde dopasowanie, a nie tylko pierwsze.

puts('a-b-c-d'.gsub(/-/, '_'))
puts('one two two'.gsub(/two/, 'three'))

Wzorce w zastępowaniu

Pierwszym argumentem gsub może być pełne wyrażenie regularne, co pozwala dopasowywać elastyczne wzorce zamiast stałego tekstu.

puts('id42 id7 id100'.gsub(/\d+/, '#'))
puts('a1b2c3'.gsub(/[0-9]/, '*'))

Odwołania wsteczne w zamianie

W ciągu zastępującym można odwoływać się do przechwyconych grup za pomocą \1, \2 i kolejnych oznaczeń.

puts('2026-05-30'.gsub(/(\d{4})-(\d{2})-(\d{2})/, '\3/\2/\1'))

Odwołanie wsteczne do całego dopasowania

\0 lub \& odnosi się do całego dopasowanego tekstu, co jest przydatne do otaczania dopasowań.

puts('cat dog'.gsub(/\w+/, '[\0]'))

Blokowa postać gsub

gsub przyjmuje blok. Każde dopasowanie jest przekazywane do bloku, a wartość zwrócona przez blok staje się zamianą. Dzięki temu można obliczać zamiany dynamicznie.

result = 'a1 b2 c3'.gsub(/\d/) { |d| (d.to_i * 10).to_s }
puts result

Zmiana dopasowań na wielkie litery

Postać blokowa ułatwia przekształcanie tekstu. W tym przykładzie zmieniamy pierwszą literę każdego słowa na wielką.

title = 'the great escape'.gsub(/\w+/) { |w| w.capitalize }
puts title

Zastępowanie za pomocą Hash

Jeśli jako drugi argument zostanie przekazany Hash, każde dopasowanie jest wyszukiwane jako klucz, a następnie zastępowane odpowiadającą mu wartością. To świetne rozwiązanie dla map tłumaczeń.

map = { 'cat' => 'kedi', 'dog' => 'kopek' }
puts('cat and dog'.gsub(/cat|dog/, map))

Wersje modyfikujące w miejscu

sub! i gsub! modyfikują ciąg znaków w miejscu i zwracają nil, jeśli nie wprowadzono żadnych zmian.

s = 'hello'
s.gsub!(/l/, 'L')
puts s
puts(s.gsub!(/z/, 'x').inspect)

Usuwanie tekstu

Aby usunąć dopasowania, należy zastąpić je pustym ciągiem znaków.

puts('h e l l o'.gsub(/\s/, ''))
puts('price: $42'.gsub(/[^0-9]/, ''))

Nazwane odwołania wsteczne grup

Grupom można nadawać nazwy za pomocą (?<name>...), a następnie odwoływać się do nich w zamianie za pomocą \k<name>.

out = 'John Smith'.gsub(/(?<first>\w+) (?<last>\w+)/, '\k<last>, \k<first>')
puts out

Szybkie sprawdzenie

Jaka jest różnica między sub a gsub?

Podsumowanie: zastępowanie

Poznałeś sposoby przekształcania ciągów znaków za pomocą wzorców:

  • sub zastępuje pierwsze dopasowanie, a gsub wszystkie dopasowania
  • Odwołania wsteczne \1 i \& w zamianach
  • Postać blokowa umożliwia dynamiczne obliczanie zamian
  • Argument Hash mapuje dopasowania na wartości
  • sub! i gsub! modyfikują ciąg znaków w miejscu
puts('foo bar baz'.gsub(/b\w+/) { |w| w.upcase })

Często zadawane pytania

Czy lekcja „Podstawianie” jest bezpłatna?

Tak — pełny tekst „Podstawianie” 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 „Podstawianie”?

gsub ze wzorcami Ć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 3 z 4.

Ile czasu zajmuje lekcja „Podstawianie”?

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