我有一个包含整数和字符的字符串,我需要提取数组中的所有数字,例如:
str = "achance123for84faramir3toshowhis98quality"
#=> [123, 84, 3, 98] #Desired output
我很难把它们组合在一起。我试过:
str.split('').select {|el| el.match(/[\d]+.*/)}
#=> ["1", "2", "3", "8", "4", "3", "9", "8"]
str.split('').select {|el| el.match(/[\d]+[\D]+/)}
#=> []
我如何维护所有整数的分组并将它们列在数组中?假设它只包含**数字和字符(a-z)。没有空格/非单词字符。所有的都是小写的。
- (它们不必转换为整数。我只是在使用正则表达式将它们分组时遇到了问题。如果有一个没有Regex的解决方案,那也会很棒!)*
1条答案
按热度按时间2admgd591#
尝试使用
String#scan
,如下所示:如果你想要整数而不是字符串,只需添加
map
即可: