例如,假设我们有字符串“hello / world / of / stacks”,我们想从中删除“/ stacks”(一直到最后一个'/'),留下“hello / world” /的”。这需要适用于包含/的任何字符串。
答案 0 :(得分:2)
我发现rpartition
在这种情况下效果很好:
s = 'hello/world/of/stacks'
p s.rpartition('/').first #=> "hello/world/of"
或者,如果你想要花哨:
s, = s.rpartition('/')
p s #= > "hello/world/of"
答案 1 :(得分:1)
使用String中的rindex
和[]
方法:
input.str[0, input.rindex(?/)]
答案 2 :(得分:1)
File.dirname("hello/world/of/stacks")
# => "hello/world/of"
答案 3 :(得分:0)
1.9.3p448 :024 > str = "hello/world/of/stacks"
=> "hello/world/of/stacks"
然后,您可以使用rindex
...
1.9.3p448 :025 > str.rindex("/")
=> 14
然后使用该索引,您只能抓取最多(和不包括)斜线的字符...
1.9.3p448 :026 > str[0..(14 - (str.length + 1))]
=> "hello/world/of"