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"]

以上将创建一个新的字符串数组,其中每个字符串都是“california”。如何用整个原始字符串创建一个新数组?

4

3 回答 3

3

如果您尝试查找匹配的字符串,则使用了错误的方法,您想要select

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

select方法:

返回一个数组,其中包含块不为假的枚举所有元素。

于 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 回答