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 the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.