首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ruby2.0中如何从字符串数组中获取值

在Ruby2.0中如何从字符串数组中获取值
EN

Stack Overflow用户
提问于 2013-06-03 22:43:51
回答 4查看 251关注 0票数 3

我有这个字符串数组:

代码语言:javascript
复制
array = [ "nike air", "nike steam","nike softy" ,"nike strength",
          "smooth sleeper","adidas air","addidas jogar","adidas softy","adidas heels"]

我想从这里提取字符串作为SQL like查询。

例如,如果用户输入单词"nike“。则应返回4个字符串作为结果

代码语言:javascript
复制
           "nike air", "nike steam","nike softy" ,"nike strength"

例如,如果用户输入单词"adidas“。则应返回4个字符串作为结果

代码语言:javascript
复制
           "adidas air","addidas jogar","adidas softy","adidas heels"

有可能吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-03 22:47:44

代码语言:javascript
复制
array.grep(query)

返回与查询匹配的数组子集。

票数 8
EN

Stack Overflow用户

发布于 2013-06-03 22:48:02

使用Enumerable#grep

代码语言:javascript
复制
matches = array.grep /nike/

添加不区分大小写的/i。要从字符串构造regexp:

代码语言:javascript
复制
re = Regexp.new( Regexp.escape(my_str), "i" )

或者,如果您希望您的用户能够使用特殊的Regexp查询,只需:

代码语言:javascript
复制
matches = array.grep /#{my_str}/
票数 7
EN

Stack Overflow用户

发布于 2013-06-03 22:49:43

或者,您也可以自己构建查询方法:

代码语言:javascript
复制
def func( array )
  array.each_with_object [] do |string, return_array|
    return_array << string if string =~ /nike/
  end
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16899448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档