私は次のような文字列を持っています:
"/system/path/513/b02/36a/66ea2557[*,0].swf,16"
私はアプリケーションにRubyon Railsを使用しています。66ea2557の末尾に1-16を追加して、次のような16のURLを作成しようとしています。
"/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でこれを行うにはどうすればよいですか?
回答:
回答№1は2仮定して:
- あなたは与えられます
"/system/path/513/b02/36a/66ea2557[*,0].swf,16"
おそらくあなたの制御の及ばないどこかから、それを解析する必要があります - 数字
16
文字列の最後は必ずしも毎回同じである必要はなく、必要なURLの数を示します - あなたは
[*,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"]
回答№2の場合は0
(1..16).each do |i|
puts "/system/path/513/b02/36a/66ea2557#{i}.swf"
end
回答№3の場合は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;
回答№4の場合は0
あなたは使うことができます ストリング#%:
path = "/system/path/513/b02/36a/66ea2557%s.swf"
(1..16).map {|index| path % index}