2011-03-09 1 views
3

私は文字列の配列を持っていて、配列内の各文字列内の特定の単語(猫や犬)を検索し、来た順番で結果を表示したい。Rubyで一致する文字列をスキャンする

例文

Strings[0] = "Subject family leans toward cats" 
Strings[1] = "Test subject prefers dogs" 

私はString.each {|x| x.scan(/cat|dog)/ }を試してみましたが、私は今までの結果では最後の試合になるだろう。 puts $1 => cat puts $2 => dogを取得するにはどうすればよいですか?これはあなたのために働く必要があります

["...", "..."].map { |e| e[/cat|dog/] } 
+2

それは不明だ出力したいです。 puts $ 1 => catは$ 2 => dogを入れますか? – tokland

+0

私の最初の結果は猫で、2番目の犬は犬であることが欲しい – Bovinewill74

+0

まだわかりません。 – fl00r

答えて

4
strings = [ "Subject family leans toward cats", 
      "Test subject prefers dogs" ] 
cat_and_dogs = strings.join.scan /cat|dog/ 
#=> ["cat", "dog"] 

をので、今あなたがputsそれすることができます:

puts cats_and_dogs[0] 
#=> "cat" 
puts cats_and_dogs[1] 
#=> "dog" 
puts cats_and_dogs.join(" & ") 
#=> "cat & dog" 
0

いただきありがとうございます。

list = ["Subject family leans toward cats.","Tes subject perfers dogs not cats"] 
list.each { |x| 
    puts x.scan(/cat|dog/) 
} 

出力:

cat 
dog 
cat 
0

:私は完全に質問を理解しますが、これを試してみて、それはあなたが進歩を遂げることができますかどうかを確認していないあなたの援助

2
sentences = [ 
    "Subject family leans toward cats", 
    "Test subject prefers dogs", 
] 

sentences.flat_map { |s| s.scan(/dog|cat/) } 
# => ["cat", "dog"] 
関連する問題