Есть действительно простой способ сделать это с помощью grep
:
matches = list.grep(search_artist)
if (matches.empty?)
puts "none found"
end
Для подсчета количества совпадений вы можете просто matches.length
.
Если вы хотите совпадение с регистром , тогда вы хотите это:
matches = list.grep(Regexp.new(search_artist, Regexp::IGNORECASE))
Где этот флаг создает регистрозависимое регулярное выражение для более широкого соответствия.
Редактировать : Чтобы привязать этот поиск к началу строки:
matches = list.grep(Regexp.new('\A' + Regexp.escape(search_artist), Regexp::IGNORECASE))
Где \A
привязывает начало строки.