我想列出数组中包含给定关键字的所有字符串。
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”。如何使用整个原始字符串创建一个新数组?
答案 0 :(得分:3)
如果您尝试查找匹配的字符串,那么您使用了错误的方法,您需要select
:
array_name.select { |s| s.match(/\bcalifornia\b/i) }
# ["this is california", "welcome to california"]
select
方法:
返回一个数组,其中包含块不为false的 enum 的所有元素。
答案 1 :(得分:3)
array_name.grep /\bcalifornia\b/i
# => ["this is california", "welcome to california"]
答案 2 :(得分:0)
a = array_name.select{|b| b.match /\b(california)\b/i)}