我有包含整数和字符的字符串,我需要提取数组中的所有数字,例如:
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]+/)}
#=> []
如何维护所有整数的分组并将它们列在数组中?假设它将包含only数字和字符 (a-z)。没有空格/非单词字符。全部都是小写。
(它们不必转换为整数。我只是在使用正则表达式将它们分组时遇到问题。如果有一个没有正则表达式的解决方案,那就太棒了!)
尝试使用String#scan
, 像这样:
str.scan(/\d+/)
#=> ["123", "84", "3", "98"]
如果你想要整数而不是字符串,只需添加map
to it:
str.scan(/\d+/).map(&:to_i)
#=> [123, 84, 3, 98]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)