3 niesamowite sposoby użycia metody Gsub w Rubim
On 4 października, 2021 by adminPorozmawiajmy o metodzie gsub w Rubim.
Po pierwsze, będziesz potrzebował łańcucha znaków, aby bawić się tą metodą.
Dlaczego?
Ponieważ używasz gsub na łańcuchu do zastąpienia jego części.
W rzeczywistości:
„sub” w „gsub” oznacza „substytut”, a „g” oznacza „globalny”.
Masz swój ciąg znaków?
Dobrze.
Jeśli nie, możesz pożyczyć mój.
Oto on:
str = "white chocolate"
Powiedzmy, że chcemy zastąpić słowo „biały” słowem „ciemny”.
Oto jak:
str.gsub("white", "dark")
To mówi:
Dając łańcuch str, rozkaż mu zastąpić WSZYSTKIE wystąpienia pierwszego słowa (white) drugim słowem (dark).
Co oznacza, że będziemy mogli jeść dużo lepszą czekoladę.
Czekaj, to tylko łańcuch.
Nie możemy tego jeść!
W każdym razie…
Metoda Ruby’ego gsub może zrobić dużo więcej niż proste podstawianie.
Zobaczmy kilka przykładów.
Replace Patterns With A Regular Expression
Zastępowanie pojedynczego słowa jest w porządku.
Ale co by było, gdybyś mógł zastąpić wzorzec?
Na przykład:
Rok, adres e-mail, numer telefonu, itp.
Możesz!
Oto przykład:
"a1".gsub(/\d/, "2")# "a2"
Pierwszym argumentem jest wyrażenie regularne, a to zbyt wiele, aby omówić je tutaj.
Ale jest to język dopasowujący wzorce.
W tym przypadku \d szuka liczb, takich jak „1” w „a1”.
Możesz też zrobić tak:
"a1".gsub(/(\w)(\d)/, '')
Wynika z tego:
"1a"
Zamieniliśmy kolejność!
To działa dzięki użyciu funkcji zwanej „grupy przechwytywania”.
Możemy używać grup jako dla pierwszej grupy, dla drugiej grupy, itd.
Grupy są tworzone za pomocą nawiasów.
Zaawansowany Gsub Z Blokami
Rzeczy stają się naprawdę interesujące, gdy zaczynasz używać gsub z blokiem.
Dlaczego?
Ponieważ wewnątrz bloku możesz użyć logiki, aby zdecydować, jak coś zastąpić.
Zamiast używać wartości statycznej.
Na przykład:
"dog".gsub(/\w+/) { |animal| animal == "dog" ? "cat" : "dog" }
Znajdujemy zwierzę z \w+, co oznacza „jeden lub więcej znaków alfanumerycznych”.
Wtedy:
- Jeśli jest to „pies”, zastępujemy go „kotem”
- Jeśli słowo jest czymkolwiek innym, zastępujemy je „psem”
Tego rodzaju logika nie jest możliwa z wartością statyczną, 2. parametrem gsub.
Replace Multiple Terms With A Hash
Jeśli masz listę zamienników do wykonania, możesz użyć hasha.
Like this one:
colors = { "B" => "blue", "G" => "green", "R" => "red"}
This works like a translation dictionary, where the keys will be replaced by their values.
Here’s an example:
"BBBGR".gsub(/\w/, colors)
Which results in:
"bluebluebluegreenred"
Make sure that your 1st argument will match the keys.
W tym przypadku \w dopasowuje pojedyncze znaki, więc dopasuje „B” i zamieni je na „blue”.
Podsumowanie
Poznałeś metodę gsub w Rubim! Jest to potężna metoda, która pozwala na zamianę lub zastąpienie znaków wewnątrz łańcucha znaków.
Ma ona wiele zastosowań:
- Usuwanie nieprawidłowych znaków (poprzez uczynienie drugiego argumentu pustym łańcuchem znaków)
- Zastępowanie zastępników & akronimów ich pełnymi wartościami
- Używanie wzorców & logiki do zmiany łańcucha znaków

Teraz twoja kolej na praktykę z tą metodą, abyś mógł sprawić, że twoja nowa wiedza będzie się trzymać.
Dzięki za przeczytanie 🙂
.
Dodaj komentarz