我无法从nokogiri节点内容中删除空格

时间:2012-05-04 09:07:47

标签: ruby string nokogiri

代码:

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

但我仍然很奇怪,为什么第一个解决方案很糟糕。

3 个答案:

答案 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]+/, '')