編程和Ruby的新手。我正在使用iStock API,需要發送一個fileID來請求關於我擁有的文件的信息。從數組中取出數字Ruby
示例文件,我有我需要得到請求對iStock信息:
["iStock_000001053628Small.jpg", "iStock_000002270952Big_Web.mov", "ist2_7034929-blurred-commuter.jpg", iStock_000000042199Medium.jpg]
在IRB的工作,我發送到iStock的API代碼:
require 'xmlrpc'
parameters = {:apiKey=>"#", :fileID=>"1053628"}
server = XMLRPC::Client.new2("http://api.istockphoto.com/webservices/xmlrpc")
server.call("istockphoto.image.getInfo", parameters)
挑戰: 我需要從數組中提取fileID數字。這意味着我必須從文件編號的前面取出所有的零。但是,文件號碼的長度不同,每個圖像的前端零點數量也不相同。
istock.each do |x|
result = ' '
x.scan(/\d+/) do |y|
if y.to_i > 4
result << y
end
puts result
end
end
000001053628
000002270952
7034929
000000042199
我不知道如何處理這個問題,因爲如果我設置的規則集0的,有可能是一個時間,當實際的fileid也有這些的吧。
而不是gsub,在這裏一個子就足夠了。但是你也沒有一個子:'d.scan(/ [1-9] \ d {3,} /)。first',或簡單地'd.scan(/ \ d {4,} /)。 .to_i'來獲取原始數字。 –
乾杯!這也適用! – iamgato