0

特定のキーワードを含む配列内のすべての文字列を一覧表示したいと思います。

array_name = ["this is california", "hawaii", "washington", "welcome to california"]

a = array_name.map { |s| s.scan(/\b(california)\b/i) }.flatten

# => ["california", "california"]

上記は、各文字列が「カリフォルニア」である文字列の新しい配列を作成します。元の文字列全体で新しい配列を作成するにはどうすればよいですか?

4

3 に答える 3

3

一致する文字列を見つけようとしている場合は、間違った方法を使用していますselect

array_name.select { |s| s.match(/\bcalifornia\b/i) }
# ["this is california", "welcome to california"]

select方法:

ブロックがfalseではない列挙のすべての要素を含む配列を返します。

于 2012-06-03T03:32:57.937 に答える
3
array_name.grep /\bcalifornia\b/i
# => ["this is california", "welcome to california"]
于 2012-06-03T11:24:44.673 に答える
0
a = array_name.select{|b| b.match /\b(california)\b/i)}
于 2012-06-03T03:34:44.543 に答える