0

私はこのような配列を持っています:

inList = ["edge_rabbit", "nsp_edge_rabbit", "services", "syslog", "master_rabbit", "mongod", ...]

_rabbitまたはで終わる要素を取りmongo[cds]、次のようなカンマ区切りの文字列を生成するにはどうすればよいですか?

"edge_rabbit, nsp_edge_rabbit, master_rabbit"
4

2 に答える 2

1

私はいくつかの小さなパターンを使用します:

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"

または:

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

、またはmongo以外の末尾の文字を使用してバリエーションを持たせることができる場合は、次を使用します。cds

in_list.grep(/(?:^mongo[cds])|(?:_rabbit$)/).join(', ') # => "edge_rabbit, nsp_edge_rabbit, master_rabbit, mongod"
于 2013-09-10T21:00:27.393 に答える