根据Ruby中的字符拆分URL

时间:2016-09-02 10:10:03

标签: ruby

我想知道如何最好地将/之后的字符串拆分,而忽略某些字符

所以我的字符串看起来像这样

url = http://10.0.3.2/i/av/Genymotionvbox86p/android/10~3~1/0/-/-/a3306aa6~0346~4ad5~bdf5~1bc7c20a88ab/0/test~page/-/-/video/live/-/one_hd/-/0/1/0~0/-/0~0/0~0/?trace=skwthffdsy

我希望按/忽略http://和最后的查询字符串,所需的结果看起来像

["i", "av", "Genymotionvbox86p", "android", "10~3~1", "0", "-", "-",
  "a3306aa6~0346~4ad5~bdf5~1bc7c20a88ab", "0", "test~page", "-", "-",
  "video", "live", "-", "one_hd", "-", "0", "1", "0~0", "-", "0~0", "0~0"]

所以目前url.split('/')让我到目前为止,但是它被排除在外的某些字符

也许使用scan会更好地为我服务?

2 个答案:

答案 0 :(得分:5)

试试这个:

require 'uri'
URI(url).path.sub(%r{^/}, "").split("/")

修改:为什么在更短,更快gsub完全正常时使用sub

答案 1 :(得分:1)

也许是这样的?

url.split('/')[3..-2]

[3..-2]表示数组的范围,它将索引3中的所有元素转换为索引-2

-2 

表示最后一个