Как удалить подстроку после определенного символа в строке, используя Ruby?
Как удалить подстроку после определенного символа в строке, используя Ruby?
Ответ 1
new_str = str.slice(0..(str.index('blah')))
Ответ 2
Я считаю, что "Part1?Part2".split('?')[0]
легче читать.
Ответ 3
Я удивлен, что никто не предложил использовать 'gsub'
irb> "truncate".gsub(/a.*/, 'a')
=> "trunca"
Для изменения строки может использоваться версия ggb для bang.
Ответ 4
str = "Hello World"
stopchar = 'W'
str.sub /#{stopchar}.+/, stopchar
#=> "Hello W"
Ответ 5
Особый случай - если у вас есть несколько вхождений одного и того же символа, и вы хотите удалить из последнего вхождения до конца (не первого). Следуя rindex
Джейкоба, вы просто должны использовать rindex
вместо index
как rindex
получает индекс символа в строке, но начиная с конца. Что-то вроде этого:
str = '/path/to/some_file'
puts str.slice(0, str.index('/')) # => ""
puts str.slice(0, str.rindex('/')) # => "/path/to"