Ruby 如何在数组中选择特定图案

Ruby 如何在数组中选择特定图案,ruby,Ruby,这是我的阵列: a = ['a','b','c', 'C!', 'D!'] 我想选择任何大写字母,后跟字符并显示它们。我试着: puts a.select! {|i| i.upcase + "!"} 这给了我空集。任何帮助都将不胜感激。请尝试以下方法: a.选择{i | i=~/[a-Z]!/}尝试以下操作: puts a.grep(/[A-Z]!/) a.选择{| i | i=~/[a-Z]!/} puts a.grep(/[A-Z]!/) 行 就可以了。这里有另一种在Ruby中使用

这是我的阵列:

a = ['a','b','c', 'C!', 'D!']
我想选择任何大写字母,后跟
字符并显示它们。我试着:

puts a.select! {|i|  i.upcase + "!"}
这给了我空集。任何帮助都将不胜感激。

请尝试以下方法:

a.选择{i | i=~/[a-Z]!/}

尝试以下操作:

puts a.grep(/[A-Z]!/)
a.选择{| i | i=~/[a-Z]!/}

puts a.grep(/[A-Z]!/)


就可以了。

这里有另一种在Ruby中使用Regexp match方法的方法

a.select { |letter| /[A-Z]!/.match(letter) }

还有一个注意事项:在A.Sead中考虑一个更有意义和上下文相关的变量名,而不是“i”。{| i | i.upcase+“!”}。例如,我选择了“字母”这个名字,尽管可能有一个更有意义的名字。这只是许多Ruby程序员倾向于遵循的一种好的命名实践。同样的事情也适用于名为a的数组。

这里有另一种在Ruby中使用Regexp match方法的方法

a.select { |letter| /[A-Z]!/.match(letter) }

还有一个注意事项:在A.Sead中考虑一个更有意义和上下文相关的变量名,而不是“i”。{| i | i.upcase+“!”}。例如,我选择了“字母”这个名字,尽管可能有一个更有意义的名字。这只是许多Ruby程序员倾向于遵循的一种好的命名实践。同样的事情也适用于名为a.

@CarySwoveland的数组,它不考虑字符串后面是否跟有
@CarySwoveland虽然不适合这个问题,但您的方法很有趣。@CarySwoveland这没有考虑字符串后面是否跟有
@CarySwoveland虽然它不适合这个问题,但你的方法很有趣正在那里执行。。我在正则表达式中的概念很糟糕。哦!对我现在明白了。我以为这是Regex的一部分+1用于使用
#grep
。什么
正在那里执行。。我在正则表达式中的概念很糟糕。哦!对我现在明白了。我以为这是Regex的一部分+1用于使用
#grep