如何使用Ruby删除字符串中某个字符后的子字符串?

时间:2010-12-20 03:40:20

标签: ruby string substring

如何使用Ruby删除字符串中某个字符后的子字符串?

5 个答案:

答案 0 :(得分:40)

new_str = str.slice(0..(str.index('blah')))

alt text

答案 1 :(得分:24)

我发现"Part1?Part2".split('?')[0]更容易阅读。

答案 2 :(得分:9)

我很惊讶没有人建议使用' gsub'

irb> "truncate".gsub(/a.*/, 'a')
=> "trunca"

gsub的爆炸版可以用来修改字符串。

答案 3 :(得分:5)

str = "Hello World"
stopchar = 'W'
str.sub /#{stopchar}.+/, stopchar
#=> "Hello W"

答案 4 :(得分:0)

一种特殊情况是,如果您多次出现相同的字符,并且想要从最后一次出现到结尾(而不是第一个)删除。 按照Jacob的建议,您只需要使用rindex而不是index,因为rindex可以从字符串末尾开始获取字符串中字符的索引。 像这样:

str = '/path/to/some_file'
puts str.slice(0, str.index('/')) # => ""
puts str.slice(0, str.rindex('/')) # => "/path/to"