我有一个像:
的字符串"/system/path/513/b02/36a/66ea2557[*,0].swf,16"
我正在为我的应用程序使用Ruby on Rails。我试图通过在66ea2557的末尾添加1-16来获得16个网址,以获得类似的内容:
"/system/path/513/b02/36a/66ea25571.swf"
"/system/path/513/b02/36a/66ea25572.swf"
..
"/system/path/513/b02/36a/66ea255715.swf"
"/system/path/513/b02/36a/66ea255716.swf"
我如何在Ruby中执行此操作?
答案 0 :(得分:2)
假设:
"/system/path/513/b02/36a/66ea2557[*,0].swf,16"
,但可能需要解析16
不一定每次都相同,表示您需要的网址数[*,0]
部分,也不一定代表任何内容我想出了:
string = "/system/path/513/b02/36a/66ea2557[*,0].swf,16"
base_path, _, file_extension, num_urls = string.split(/(\[\*,0\])|,/)
# => ["/system/path/513/b02/36a/66ea2557", "[*,0]", ".swf", "16"]
(1..num_urls.to_i).map { |i| "#{base_path}#{i}#{file_extension}" }
# => ["/system/path/513/b02/36a/66ea25571.swf",
"/system/path/513/b02/36a/66ea25572.swf",
...
"/system/path/513/b02/36a/66ea255716.swf"]
答案 1 :(得分:0)
(1..16).each do |i|
puts "/system/path/513/b02/36a/66ea2557#{i}.swf"
end
答案 2 :(得分:0)
您可以尝试简单的循环。类似的东西:
#test.rb
arr = Array.new();
for i in 1..16
arr[i-1] = "/system/path/513/b02/36a/66ea2557" + i.to_s;
end
puts arr;
答案 3 :(得分:0)
您可以使用String#%:
path = "/system/path/513/b02/36a/66ea2557%s.swf"
(1..16).map {|index| path % index}