2014-09-13 92 views
0

我有分隔的字符串逗号,包含两个URL的,就像这样:按文件扩展名选择串

"http://bucket.s3.amazonaws.com/uploads/45b3ab5f-9cb2-4696-91ea-5e2b8a3ef84d/c2aaecbaddfbd246c2b36d3e03144aad.mp4, http://bucket.s3.amazonaws.com/uploads/45b3ab5f-9cb2-4696-94ea-5e2b8a3ef84d/ca503efd6e59f2e887a1c52a14024v6e.webm" 

我想写一个方法,让我得到WEBM URL,以及mp4的URL - 基于它们的文件扩展名(不是位置...有时位置发生变化)。

我想知道如何通过使用Ruby的文件扩展名来选择每个值的完整URL。

回答

2

分割使用String#split并筛选出字符串所需使用Array#select之一:

s = "http://bucket....aad.mp4, http://bucket...v6e.webm" 
urls = s.split(',') 
urls.select { |url| url.end_with? '.mp4' } # `String#end_with?` to match extension 
# => ["http://bucket....aad.mp4"] 
+0

我怎样才能把周围的括号? – cmw 2014-09-13 18:17:18

+1

@cmw,'Array#select'返回一个数组。你可以使用'[]':'urls.select {| url | url.end_with? '.mp4'} [0]'获得第一项。 – falsetru 2014-09-13 18:18:29