我有这个字符串数组:
array = [ "nike air", "nike steam","nike softy" ,"nike strength",
"smooth sleeper","adidas air","addidas jogar","adidas softy","adidas heels"]我想从这里提取字符串作为SQL like查询。
例如,如果用户输入单词"nike“。则应返回4个字符串作为结果
"nike air", "nike steam","nike softy" ,"nike strength"例如,如果用户输入单词"adidas“。则应返回4个字符串作为结果
"adidas air","addidas jogar","adidas softy","adidas heels"有可能吗?
发布于 2013-06-03 22:47:44
array.grep(query)返回与查询匹配的数组子集。
发布于 2013-06-03 22:48:02
使用Enumerable#grep
matches = array.grep /nike/添加不区分大小写的/i。要从字符串构造regexp:
re = Regexp.new( Regexp.escape(my_str), "i" )或者,如果您希望您的用户能够使用特殊的Regexp查询,只需:
matches = array.grep /#{my_str}/发布于 2013-06-03 22:49:43
或者,您也可以自己构建查询方法:
def func( array )
array.each_with_object [] do |string, return_array|
return_array << string if string =~ /nike/
end
endhttps://stackoverflow.com/questions/16899448
复制相似问题