Wyszukiwanie i zastępowanie
gsub, sub, match
Wyszukiwanie i zastępowanie 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.
Wyszukiwanie podłańcucha
Metoda index zwraca pozycję pierwszego dopasowania albo nil, jeśli go nie znaleziono. include? zwraca wartość true lub false.
text = "hello world"
puts text.index("world")
puts text.include?("world")Zastępowanie pierwszego dopasowania za pomocą sub
sub zastępuje tylko pierwsze wystąpienie wzorca nową wartością.
text = "cat cat cat"
puts text.sub("cat", "dog")Zastępowanie wszystkich dopasowań za pomocą gsub
gsub oznacza globalne zastępowanie. Zastępuje każde wystąpienie.
text = "cat cat cat"
puts text.gsub("cat", "dog")Używanie wyrażeń regularnych
Wzorce zapisane między ukośnikami, takie jak /.../, są wyrażeniami regularnymi. /\d/ dopasowuje cyfrę. gsub i sub przyjmują wzorce wyrażeń regularnych.
text = "a1b2c3"
puts text.gsub(/\d/, "*")Dopasowywanie za pomocą match?
match? zwraca true, jeśli wyrażenie regularne pasuje w dowolnym miejscu napisu. Jest to szybki i przejrzysty sposób wykonywania takich sprawdzeń.
email = "ada@ruby.org"
puts email.match?(/@/)
puts "no at sign".match?(/@/)Przechwytywanie za pomocą match
match zwraca obiekt MatchData. Indeks [0] oznacza całe dopasowanie; nawiasy tworzą grupy przechwytujące dostępne za pomocą [1], [2] i kolejnych indeksów.
data = "2024-05-30"
m = data.match(/(\d+)-(\d+)-(\d+)/)
puts m[1]
puts m[2]Wyszukiwanie wszystkich dopasowań za pomocą scan
scan zwraca tablicę zawierającą każde dopasowanie w napisie. Doskonale nadaje się do wyodrębniania wszystkich liczb lub słów.
text = "phone 555 and 777"
puts text.scan(/\d+/).inspectKotwice
Kotwice przypisują dopasowanie do określonej pozycji. ^ oznacza początek wiersza, a $ — jego koniec. \A i \z przypisują dopasowanie do początku i końca całego napisu.
puts "hello".match?(/^hel/)
puts "hello".match?(/llo$/)
puts "hello".match?(/^world/)Klasy znaków
Nawiasy kwadratowe definiują zbiór dozwolonych znaków. [aeiou] dopasowuje dowolną samogłoskę. [a-z] dopasowuje dowolną małą literę.
text = "Ruby"
puts text.gsub(/[aeiou]/i, "_")Bloki w gsub
Przekazanie bloku do gsub pozwala dynamicznie przekształcać każde dopasowanie. Dopasowany tekst jest argumentem bloku.
text = "one two"
result = text.gsub(/\w+/) { |w| w.upcase }
puts resultWyszukiwanie bez uwzględniania wielkości liter
Flaga i umieszczona za wyrażeniem regularnym powoduje ignorowanie wielkości liter.
text = "Hello HELLO hello"
puts text.gsub(/hello/i, "hi")Szybki test
Sprawdź swoje umiejętności wyszukiwania i zastępowania.
Podsumowanie
Potrafi już Pan/Pani wyszukiwać i zastępować tekst:
index,include?,match?do wyszukiwaniasub(pierwsze dopasowanie) igsub(wszystkie dopasowania) do zastępowania- wzorce wyrażeń regularnych, kotwice i klasy znaków
scando wyodrębniania wszystkich dopasowań oraz bloki do dynamicznego zastępowania
W następnej kolejności: dzielenie i łączenie napisów.
puts "a,b,c".gsub(",", " | ")Często zadawane pytania
Czy lekcja „Wyszukiwanie i zastępowanie” jest bezpłatna?
Tak — pełny tekst „Wyszukiwanie i zastępowanie” 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 „Wyszukiwanie i zastępowanie”?
gsub, sub, match Ć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 „Wyszukiwanie i zastępowanie”?
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
- Podstawy String i metody
- Interpolacja i formatowanie
- Wyszukiwanie i zastępowanie
- Dzielenie i łączenie