如何从字符串正斜杠后返回值

时间:2014-07-21 11:24:41

标签: ruby

我有一个字符串"/com.bing.bang/20140620%2F351811403305411724"

我正在尝试将"com.bing.bang""20140620%2F351811403305411724"

分开

简单.split['/']无法正常工作,因为字符串以" /"

开头

如何做到这一点?

3 个答案:

答案 0 :(得分:2)

你可以做到

_, *arr = s.split '/'

arr
#=> ["com.bing.bang", "20140620%2F351811403305411724"]

答案 1 :(得分:1)

如果您在使用前删除前导/

拆分将有效:

str = "/com.bing.bang/20140620%2F351811403305411724"
fst, snd = str[1..-1].split('/')

fst # => "com.bing.bang"
snd # => "20140620%2F351811403305411724"

str.split['/']没有做任何有用的事情,它实际上会引发异常,因为split是一种方法。要调用它,您必须使用括号(圆括号),如下所示:str.split('/')

异常的原因是前一个表达式对解释器实际上是这样的:(str.split)['/']所以它会在其空格上拆分str,然后它将['/']视为从拆分生成的数组的索引。

这是一个问题,因为你给它的索引是一个字符串,而数组只接受Integer索引,所以你最终得到了TypeError

答案 2 :(得分:1)

x = "/com.bing.bang/20140620%2F351811403305411724"
bits = x.split("/")
bits.shift if bits[0] == "" # dump the initial ""
(part1,part2) = bits