2010-10-14 5 views
37

Dire que j'ai un tableau de chaînesComment rechercher un tableau dans Ruby?

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

Comment puis-je rechercher ce tableau comme je le ferais un objet record actif dans Rails. Par exemple, la requête "sa" renvoie ['sandra', 'sam', 'sabrina'].

Merci!

+0

dans le cas où vous vous interrogez sur de telles choses dans l'avenir, consultez le api rubis: http://ruby-doc.org/core/ – brad

+0

merci. fera – Tim

Répondre

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

fonctionne parfaitement, merci! – Tim

+16

Euh ... si c'est un tableau en mémoire, alors ce qui précède ne rend pas _any_ sql hits. – Andrew

+0

Par exemple. Si je devais chercher le nom entier 'sabrina', alors en bouclant plutôt chaque nom, regex ou grep donnerait un peu de performance? – kamal

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

Une combinaison de la méthode select et regex travaillerait

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

Celui-ci cherche préfixes, mais il peut être changé ou quoi que ce soit d'autre sous-chaînes.

Questions connexes