此网址:
url = rtmp://xxxxxxxxxxxxxx.cloudfront.net/cfx/st/mp3:audios/lesson/2/cancion?Expires=1386332537&Signature=mysignature__&Key-Pair-Id=my-key-par-id
我想将扩展名mp3
添加到所有文件名。
在这种情况下,文件名为cancion
课程的ID是动态值。
我想得到这样的网址:
url = rtmp://xxxxxxxxxxxxxx.cloudfront.net/cfx/st/mp3:audios/lesson/2/cancion.mp3?Expires=1386332537&Signature=mysignature__&Key-Pair-Id=my-key-par-id
谢谢!
答案 0 :(得分:4)
您可以解析URI,编辑路径,然后返回值
require 'uri/http'
u = URI.parse('rtmp://xxxxxxxxxxxxxx.cloudfront.net/cfx/st/mp3:audios/lesson/2/cancion?Expires=1386332537&Signature=mysignature__&Key-Pair-Id=my-key-par-id')
u.path += ".mp3"
puts u.to_s
或使用简单的正则表达式替换
u = 'rtmp://xxxxxxxxxxxxxx.cloudfront.net/cfx/st/mp3:audios/lesson/2/cancion?Expires=1386332537&Signature=mysignature__&Key-Pair-Id=my-key-par-id'
u.gsub('?', '.mp3?')
只有当您可以假设输入的格式始终相同时,才能使用第二种方法。
答案 1 :(得分:1)
您可以执行简单的gsub
,因为这是一个网址,您可以预期会出现?
这么简单的事情。
url.gsub!('?', '.mp3?')
通常我会在这里使用正则表达式,但不需要从之前说明的原因。