1

コード:

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

しかし、私はまだ疑問に思っています、なぜ最初の解決策はダメです。

4

3 に答える 3

1
digit='&0000000000032056.00000032 056'
value = digit[24..-1].strip
puts value #32 056
puts value.gsub(/\s+/, "") #32056

あなたの値の文字列ですか?

于 2012-05-04T09:20:33.437 に答える
1

試すべき2つのこと:

変数をチェックしているpopulation場合、メソッドは実際には変数に置換を入れません。最後の行を次のように変更します。

population << value.gsub(/\s+/, "")

それでも機能しない場合は、端末にスペースのように見える非スペース文字が含まれている可能性がありますか?代わりに、数字以外を置き換えてみてください。

population << value.gsub(/\D/, "")
于 2012-05-04T09:24:56.077 に答える
1

必要なものを持っていってください!

value.gsub(/[^0-9]+/, '')
于 2012-08-15T06:27:17.217 に答える