5.15. Przeszukiwanie hasza przy użyciu wyrażeń regularnych

Podziękowania dla Bena Giddingsa

Problem

Chcemy znaleźć w danym haszu wszystkie klucze i (lub) wartości czyniące zadość pewnemu wyrażeniu regularnemu.

Rozwiązanie

Najprościej można to zrobić, tworząc osobne tablice kluczy i wartości i przeszukując je z użyciem wspomnianego wyrażenia regularnego:

h = { "pluskwa" => "owad", "kawa" => "plantacja",
      "osa" => "owad", "pliszka" => "ptak" }
h.keys.grep /p/        # => ["pluskwa", "pliszka"]
h.values.grep /p/      # => ["plantacja", "ptak"]

Przeszukiwanie samych wartości nie daje jednak żadnej informacji co do tego, z jakimi kluczami wartości te są powiązane. Jeżeli informacja ta jest istotna, lepszym rozwiązaniem jest użycie iteratora Hash#each ...

Get Ruby. Receptury now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.