[英]Split string looking as array to array in Ruby
我有字符串["10000", "10001"]
(請不要問為什么它是字符串,我正在糾正一個家伙之后的錯誤...),現在我遇到了將每個數字拆分為單獨項目的問題,例如我想使用類似[10000, 10001]
數組,但是編寫適當的RegExp時遇到了很大的問題。 現在我正在這樣做:
items.gsub(/[^\d]/, '').scan(/./).each do |collection_id|
my code here
end
可以使用1位數的ID,但不能使用多:-(.。能幫我嗎?
string = '["10000", "10001"]'
string.scan(/\d+/).map(&:to_i)
# => [10000, 10001]
說明
.scan(/d+/)
方法返回一個僅包含數字的所有字符塊的數組:
string.scan(/\d+/)
# => ["10000", "10001"]
.map(&:to_i)
在結果數組中的每個元素上執行方法.to_i
,並根據結果創建一個新數組。
這是我使用YAML
嘗試:
2.1.0 :001 > string = '["10000", "10001"]'
=> "[\"10000\", \"10001\"]"
2.1.0 :002 > require 'yaml'
=> true
2.1.0 :003 > YAML.load(string).map(&:to_i)
=> [10000, 10001]
您可以嘗試以下方法:
"[\"10000\", \"10001\"]".gsub(/\[|\]|"/, '').split(",").map{ |s| s.to_i }
它:
1)用空字符串替換字符[,]和“。
2)在逗號上分割結果字符串
3)將字符串映射為整數並返回結果數組
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.