如何使用Ruby删除字符串中某个字符后的子字符串?
我想这是一个简单的问题
我该怎么做呢?
new_str = str.slice(0..(str.index('blah')))
我发现"Part1?Part2".split('?')[0]
更容易阅读。
我很惊讶没有人建议使用’gsub’
irb> "truncate".gsub(/a.*/, 'a') => "trunca"
bs版本的gsub可用于修改字符串。
str = "Hello World" stopchar = 'W' str.sub /#{stopchar}.+/, stopchar #=> "Hello W"
一种特殊情况是,如果您有多次出现相同的字符,并且您想要从最后一次出现到结尾(而不是第一次出现)。 按照Jacob的建议,你只需要使用rindex
而不是index
因为rindex
获取字符串中字符的索引但是从结尾开始。 像这样的东西:
str = '/path/to/some_file' puts str.slice(0, str.index('/')) # => "" puts str.slice(0, str.rindex('/')) # => "/path/to"