似乎String#to_i
只在数字在字符串中前导时才起作用。
作品:"123acb".to_i #=> 123
不起作用,但我要完成的是:"abc123def".to_i #=> 123
我一直在寻找一种内置的方法来完成这项工作,但是我还没有找到我唯一的选择是使用正则表达式吗?
编辑-
真 的!很多不错的选择顺便提一下,有没有什么特殊的原因可以解释为什么to_i
只处理前导数字?
最佳答案
做这样的事怎么样?
"abc123def".gsub(/\D/, '').to_i
# => 123
如果你想处理一个大字符串中的多个数字,你可以
"a22bc123de4f004".split(/\D/).reject(&:empty?).map(&:to_i)
# => [22, 123, 4, 004]
关于ruby - 有没有一种方法可以从字符串中提取整数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19044171/