Ruby:
Usuwanie znaków pasujących do wzorca
How to: (Jak to zrobić?)
# Usuwanie wszystkich cyfr z tekstu
text = "Ruby ver. 3.1.0 - 2023 release"
cleaned_text = text.gsub(/[0-9]/, '')
puts cleaned_text
# Output: Ruby ver. . - release
# Usuwanie tylko określonych znaków (np. kropek i myślników)
specific_chars_removed = text.gsub(/[.-]/, ' ')
puts specific_chars_removed
# Output: Ruby ver 3 1 0 2023 release
# Użyj `delete` do usunięcia konkretnych znaków
no_dashes = text.delete('-')
puts no_dashes
# Output: Ruby ver. 3.1.0 2023 release
Deep Dive (Dogłębna analiza)
Usuwanie znaków według wzorca nie jest nowością. Narzędzia takie jak sed
w systemach Unix już dawno oferowały podobne funkcje. W Ruby, metoda gsub
jest mocno rozbudowana i pozwala używać wyrażeń regularnych do określania wzorców, które chcemy usunąć. Alternatywnie, delete
jest prosta, ale usuwa tylko konkretnie określone znaki.
Ruby używa wyrażeń regularnych kompatybilnych z biblioteką Onigmo
, która rozwijała się od standardów POSIX i Perl. Pozwala to na bardzo elastyczne wzorce. W praktyce oznacza to, że możliwości edycji stringów są ogromne, ograniczone tylko wyobraźnią programisty.
Niekiedy lepszym wyborem może być tr
, gdy chcemy zamienić jeden zestaw znaków na inny. gsub
i delete
operują na kopiach stringa, co może być istotne przy bardzo dużych danych ze względu na zużycie pamięci.