Ruby,解析名称数组中的大写字母

Ruby,解析名称数组中的大写字母,ruby,arrays,regex,uppercase,Ruby,Arrays,Regex,Uppercase,我在Ruby中有一个数组中的名称列表: names = ["John Smith","Bob Miller"] 所以我想做一个正则表达式并得到这个数组: namesRegex = ["JS","BM"] 也就是说,我从字符串中提取大写字符,合并它们并将它们放入一个新数组中 非常感谢您的帮助。这非常简单: names.map { |name| name.gsub(/[^A-Z]/, '') } 您可以很容易地构造一个不那么优雅但完全有效的解决方案来解决这个问题,甚至不需要使用正则表达式或映射

我在Ruby中有一个数组中的名称列表:

names = ["John Smith","Bob Miller"]
所以我想做一个正则表达式并得到这个数组:

namesRegex = ["JS","BM"]
也就是说,我从字符串中提取大写字符,合并它们并将它们放入一个新数组中

非常感谢您的帮助。

这非常简单:

names.map { |name| name.gsub(/[^A-Z]/, '') }

您可以很容易地构造一个不那么优雅但完全有效的解决方案来解决这个问题,甚至不需要使用正则表达式或映射

到目前为止你试过什么?您遇到了什么问题?谢谢您的解决方案。碰巧我对.map函数缺乏经验,因此无法为整个数组实现正则表达式。
\w
是否也匹配非大写字母?是的,但至少在示例中,所有名称/单词都以大写字母开头。
 names.map { |name| name.scan(/\b\w/).*'' }