这是我的阵列:
a = ['a','b','c', 'C!', 'D!']
我想选择后跟!
字符的任何大写字母并显示它们。我在努力:
puts a.select! {|i| i.upcase + "!"}
给了我空集。任何帮助将不胜感激。
答案 0 :(得分:5)
puts a.grep(/[A-Z]!/)
会做的。
答案 1 :(得分:1)
尝试以下方法:
a.select {|i| i =~ /[A-Z]!/}
答案 2 :(得分:0)
这是在Ruby中使用Regexp匹配方法的另一种方法。
a.select { |letter| /[A-Z]!/.match(letter) }
另外,请注意:在 a.select中考虑一个比“i”更有意义且与上下文相关的变量名称! {|我| i.upcase +“!”} 。例如,我选择了名称“letter”,尽管名称可能更有意义。这只是一个很好的命名实践,很多Ruby程序员都倾向于遵循。同样的事情适用于名为 a 的数组。