代码:
digits.each do |digit|
puts digit.content #&0000000000032056.00000032 056
value = digit.content[24..-1].strip
puts value #32 056 it's ok
puts value.gsub(/\s+/, "") #32 056 !!!! I expected 32056
population << value
end
我不明白为什么gsub不像我预期的那样工作:/有人可以帮忙吗?
[编辑]
无论如何我以另一种方式做到了:
value = digit.content.split(".")[0]
value = value[12..-1].strip
但我仍然很奇怪,为什么第一个解决方案很糟糕。
答案 0 :(得分:1)
digit='&0000000000032056.00000032 056'
value = digit[24..-1].strip
puts value #32 056
puts value.gsub(/\s+/, "") #32056
你的价值字符串是什么?
答案 1 :(得分:1)
要尝试两件事:
如果您正在检查population
变量,那么您的方法实际上并未将替换放入其中。将最后一行更改为:
population << value.gsub(/\s+/, "")
如果仍然无效,或许有一些非空格字符看起来像终端中的空格?请尝试替换非数字:
population << value.gsub(/\D/, "")
答案 2 :(得分:1)
只需要你需要的东西!
value.gsub(/[^0-9]+/, '')