Ruby:
Korzystanie z wyrażeń regularnych
Jak to zrobić:
Podstawowe dopasowywanie
Aby dopasować ciąg znaków do prostego wzorca, możesz użyć metody match
. Poniżej sprawdzamy, czy słowo “Ruby” występuje w danym ciągu.
if /Ruby/.match("Hello, Ruby!")
puts "Znaleziono dopasowanie!"
end
# Output: Znaleziono dopasowanie!
Dopasowywanie wzorców z użyciem zmiennych
Możesz interpolować zmienne do swojego wyrażenia regularnego za pomocą składni #{}
, czyniąc swoje wzorce dynamicznymi.
language = "Ruby"
if /#{language}/.match("Programowanie w Ruby jest zabawne.")
puts "Mowa o Ruby!"
end
# Output: Mowa o Ruby!
Użycie wyrażeń regularnych do zamiany
Metoda gsub
pozwala zastąpić każde wystąpienie wzorca określonym ciągiem zastępczym.
puts "foobarfoo".gsub(/foo/, "bar")
# Output: barbarbar
Przechwytywanie
Nawiasy w wyrażeniu regularnym służą do przechwytywania części dopasowania. Metoda match
zwraca obiekt MatchData
, który można użyć do dostępu do przechwyceń.
match_data = /(\w+): (\d+)/.match("Wiek: 30")
puts match_data[1] # Przechwycony etykieta
puts match_data[2] # Przechwycona wartość
# Output:
# Wiek
# 30
Korzystanie z bibliotek firm trzecich
Chociaż standardowa biblioteka Ruby jest potężna, czasami możesz potrzebować bardziej wyspecjalizowanej funkcjonalności. Jednym z popularnych gemów do pracy z regex jest Oniguruma
, który oferuje dodatkowe funkcje regex poza wbudowanym silnikiem regex Ruby.
Zainstaluj go używając:
gem install oniguruma
Przykład użycia może wyglądać tak (zakładając, że masz zainstalowany i zażądzony oniguruma
):
# To jest bardziej zaawansowany przykład i może wymagać dodatkowej konfiguracji
require 'oniguruma'
pattern = Oniguruma::ORegexp.new('(\d+)')
match_data = pattern.match("Numer to 42.")
puts match_data[1]
# Output: 42
Pamiętaj, że choć wyrażenia regularne są potężne, mogą stać się skomplikowane i trudne do zarządzania dla bardziej złożonych wzorców. Dąż do czytelności i rozważ alternatywne metody, jeśli twoje wyrażenie regularne stanie się zbyt zagmatwane.