从字符串末尾删除字符到ruby中的字符

时间:2013-11-25 20:32:24

标签: ruby string parsing

例如,假设我们有字符串“hello / world / of / stacks”,我们想从中删除“/ stacks”(一直到最后一个'/'),留下“hello / world” /的”。这需要适用于包含/的任何字符串。

4 个答案:

答案 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"