Подтвердить что ты не робот

Как удалить подстроку после определенного символа в строке, используя Ruby?

Как удалить подстроку после определенного символа в строке, используя Ruby?

4b9b3361

Ответ 1

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

alt text

Ответ 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"