Jac*_*kin 41

new_str = str.slice(0..(str.index('blah')))
Run Code Online (Sandbox Code Playgroud)

替代文字

  • str.slice(/.*R /) (3认同)
  • 如果在字符串中找不到给定的字符会发生什么? (3认同)

Iva*_*van 25

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

  • 但是你必须加入?如果你想要它,所以我不认为回答你的确切问题. (3认同)

phi*_*ant 9

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

irb> "truncate".gsub(/a.*/, 'a')
=> "trunca"
Run Code Online (Sandbox Code Playgroud)

bs版本的gsub可用于修改字符串.


Phr*_*ogz 5

str = "Hello World"
stopchar = 'W'
str.sub /#{stopchar}.+/, stopchar
#=> "Hello W"
Run Code Online (Sandbox Code Playgroud)


Red*_*ion 5

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

str = '/path/to/some_file'
puts str.slice(0, str.index('/')) # => ""
puts str.slice(0, str.rindex('/')) # => "/path/to"
Run Code Online (Sandbox Code Playgroud)