Ruby 2.0中如何从字符串数组中获取值
我有以下字符串数组:Ruby 2.0中如何从字符串数组中获取值,ruby,arrays,Ruby,Arrays,我有以下字符串数组: array = [ "nike air", "nike steam","nike softy" ,"nike strength", "smooth sleeper","adidas air","addidas jogar","adidas softy","adidas heels"] 我想从中提取字符串作为类似SQL的查询 例如,如果用户输入单词“nike”。然后返回4个字符串作为结果 "nike air", "nike stea
array = [ "nike air", "nike steam","nike softy" ,"nike strength",
"smooth sleeper","adidas air","addidas jogar","adidas softy","adidas heels"]
我想从中提取字符串作为类似SQL的查询
例如,如果用户输入单词“nike”。然后返回4个字符串作为结果
"nike air", "nike steam","nike softy" ,"nike strength"
"adidas air","addidas jogar","adidas softy","adidas heels"
例如,如果用户输入单词“阿迪达斯”。然后返回4个字符串作为结果
"nike air", "nike steam","nike softy" ,"nike strength"
"adidas air","addidas jogar","adidas softy","adidas heels"
可能吗
array.grep(query)
返回与查询匹配的数组子集。使用:
为不区分大小写添加/i
。要从字符串构造regexp,请执行以下操作:
re = Regexp.new( Regexp.escape(my_str), "i" )
或者,如果希望用户能够使用特殊的Regexp查询,只需:
matches = array.grep /#{my_str}/
或者您可以自己构建查询方法:
def func( array )
array.each_with_object [] do |string, return_array|
return_array << string if string =~ /nike/
end
end
def func(数组)
array.each_with_object[]do| string,返回_数组|
return\u array您编写了什么代码来解决这个问题?这是一件非常简单的事情。不直接相关,但可能相关:,它允许您在数据库层执行此操作。它可能会为您提供一个更灵活的解决方案。array.grep('nike')提供了一个带有Regexp而不是字符串的空白数组。@Kashiftufail,即,/nike/
而不是'nike'
比所需的工作量(对于程序员和计算机而言)多得多。@Phrogz肯定是针对程序员的。grep
C-ish的实现吗?否则格雷普不会做同样的事情吗?我现在不能检查。@Phrogh matches=array.grep/nike/给我准确的结果,但是matches=array.grep/“nike/”什么也不给我。因此,我应该如何在我的控制器matches=array.grep/“#{params[:term]}”/params[:term]是字符串值使用array.grep(Regexp.new(Regexp.new(Regexp.escape(params[:term]))
@louism也许你应该解释一下你的答案,以及这种方法是如何“最好”的要解决OPS问题,此方法更清晰。“选择包含‘nike’的词语”是一个简单、优雅且更为地道的Ruby IMHO。