Ruby 基于模式匹配从数组生成包含元素的字符串

Ruby 基于模式匹配从数组生成包含元素的字符串,ruby,arrays,pattern-matching,Ruby,Arrays,Pattern Matching,我有这样一个数组: inList = ["edge_rabbit", "nsp_edge_rabbit", "services", "syslog", "master_rabbit", "mongod", ...] 如何获取以\u rabbit结尾的元素或格式为mongo[cds]的元素,并生成如下逗号分隔的字符串 "edge_rabbit, nsp_edge_rabbit, master_rabbit" 这是你要用的吗?还有 或 这是你要用的吗?还有 或 我会使用一些小模式: in_lis

我有这样一个数组:

inList = ["edge_rabbit", "nsp_edge_rabbit", "services", "syslog", "master_rabbit", "mongod", ...]
如何获取以
\u rabbit
结尾的元素或格式为
mongo[cds]
的元素,并生成如下逗号分隔的字符串

"edge_rabbit, nsp_edge_rabbit, master_rabbit"

这是你要用的吗?还有


这是你要用的吗?还有


我会使用一些小模式:

in_list = ["edge_rabbit", "nsp_edge_rabbit", "services", "syslog", "master_rabbit", "mongod"]

in_list.select{ |s| s[/(?:^mongo)|(?:_rabbit$)/] }.join(', ') # => "edge_rabbit, nsp_edge_rabbit, master_rabbit, mongod"
或:

如果可以在
mongo
上使用除
c
d
s
以外的其他尾随字符进行变体,则使用:

in_list.grep(/(?:^mongo[cds])|(?:_rabbit$)/).join(', ') # => "edge_rabbit, nsp_edge_rabbit, master_rabbit, mongod"

我会使用一些小模式:

in_list = ["edge_rabbit", "nsp_edge_rabbit", "services", "syslog", "master_rabbit", "mongod"]

in_list.select{ |s| s[/(?:^mongo)|(?:_rabbit$)/] }.join(', ') # => "edge_rabbit, nsp_edge_rabbit, master_rabbit, mongod"
或:

如果可以在
mongo
上使用除
c
d
s
以外的其他尾随字符进行变体,则使用:

in_list.grep(/(?:^mongo[cds])|(?:_rabbit$)/).join(', ') # => "edge_rabbit, nsp_edge_rabbit, master_rabbit, mongod"

我知道这件事会很简单,我甚至都没想过。非常感谢你的及时答复。干杯另外,是否可以将模式匹配/regex与
include
一起使用,比如
inList.include?()
?e、 g.检查是否有任何数组元素以
\u rabbit
结尾。干杯@Mac用户不使用,但使用yes
#grep
即可。看我的更新。我知道这会很简单,我甚至都没想过。非常感谢你的及时答复。干杯另外,是否可以将模式匹配/regex与
include
一起使用,比如
inList.include?()
?e、 g.检查是否有任何数组元素以
\u rabbit
结尾。干杯@Mac用户不使用,但使用yes
#grep
即可。看我的更新。@TheTinMan:对Ruby新手来说非常有用;谢谢你提醒我!干杯@锡人:对红宝石新手来说非常有用;谢谢你提醒我!干杯
in_list.grep(/(?:^mongo[cds])|(?:_rabbit$)/).join(', ') # => "edge_rabbit, nsp_edge_rabbit, master_rabbit, mongod"