2010-10-14 56 views
37

說我有一個字符串如何在Ruby中搜索數組?

arr = ['sandra', 'sam', 'sabrina', 'scott', 'mark', 'melvin'] 

數組如何將搜索這陣,就像我會在Rails的活動記錄對象。例如,查詢「sa」將返回['sandra', 'sam', 'sabrina']

謝謝!

+0

如果你想知道在未來這樣的事情,檢查出的紅寶石API:http://ruby-doc.org/core/ – brad 2010-10-14 20:59:08

+0

感謝。會做 – Tim 2010-10-14 22:50:27

回答

59
arr.grep(/^sa/) 
+0

完美的作品,謝謝! – Tim 2010-10-14 22:50:43

+16

呃......如果這是一個內存數組,那麼上面的內容不會使_any_ sql命中。 – Andrew 2012-11-05 09:02:19

+0

例如,如果我必須搜索全名'sabrina',然後循環每個名稱,則正則表達式或grep會提供一些性能? – kamal 2016-08-29 11:48:02

21
>> arr.select {|s| s.include? 'sa'} 
=> ["sandra", "sam", "sabrina"] 
9

select方法和正則表達式的組合將工作

arr.select {|a| a.match(/^sa/)} 

這一個查找前綴,但它可以更改爲子或其他任何東西。