如何从Ruby 2.0中的字符串数组中获取值
我有这个字符串数组:
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”。 然后应返回4个字符串作为结果
"adidas air","addidas jogar","adidas softy","adidas heels"
可能吗?
array.grep(query)
返回与查询匹配的数组子集。
使用Enumerable#grep
:
matches = array.grep /nike/
添加/i
不区分大小写。 要从字符串构造正则表达式:
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
array = [ "nike air", "nike steam","nike softy" ,"nike strength", "smooth sleeper","adidas air","addidas jogar","adidas softy","adidas heels"] array.select{|i| i.include? "nike"} # >> ["nike air", "nike steam", "nike softy", "nike strength"]