如何使用另一个字符串切掉Ruby中的字符串?

时间:2011-07-25 21:02:16

标签: ruby substring text-manipulation

说我有一句类似于以下的句子:

The quick brown fox jumps over the lazy dog

我想在切换之前切掉一切,包括“跳跃”,所以我留下了:

 over the lazy dog

目前,我得到了我要删除的部分的索引,然后将该部分的长度添加到它,然后将其切片,如下:

sentence = "The quick brown fox jumps over the lazy dog"
slice_index = sentence.index("jumps").to_i + sentence.size
sliced_sentence = sentence.slice(slice_index..-1)

有没有更好的方法来实现这一目标?

谢谢!

3 个答案:

答案 0 :(得分:5)

就个人而言,我喜欢正则表达式解决方案,但是

sentence.split(" jumps ").last

也可以,即使有多个“跳跃”。

答案 1 :(得分:3)

您可以使用正则表达式:

sentence =~ /jumps(.*)$/
sliced_sentence = $1
#=> " over the lazy dog"

jump是您要查找的单词,(.*)$是字符串末尾的所有内容,括号代表第一个捕获组(因此引用为$ 1)

答案 2 :(得分:1)

也许不是最好的解决方案,但我会这样做:

sentence = "The quick brown fox jumps over the lazy dog"
sentence.split(" jumps ")[1]

split将str分为基于分隔符的子字符串,返回这些子字符串的数组。数组索引1将始终是分隔符后面的部分。如果有多个“跳跃”

,这会中断