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