Как удалить подстроку после определенного символа в строке, используя Ruby? - PullRequest
30 голосов
/ 20 декабря 2010

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

Ответы [ 5 ]

40 голосов
/ 20 декабря 2010
new_str = str.slice(0..(str.index('blah')))

alt text

24 голосов
/ 04 января 2012

Я считаю, что "Part1?Part2".split('?')[0] легче читать.

9 голосов
/ 20 августа 2015

Я удивлен, что никто не предложил использовать 'gsub'

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

Для изменения строки можно использовать версию gsub для взрыва.

5 голосов
/ 20 декабря 2010
str = "Hello World"
stopchar = 'W'
str.sub /#{stopchar}.+/, stopchar
#=> "Hello W"
0 голосов
/ 26 июня 2018

Особый случай, если у вас есть несколько вхождений одного и того же символа, и вы хотите удалить из последнего вхождения до конца (не первого). Следуя совету Джейкоба, вам просто нужно использовать rindex вместо index, так как rindex получает индекс символа в строке, но начинается с конца. Примерно так:

str = '/path/to/some_file'
puts str.slice(0, str.index('/')) # => ""
puts str.slice(0, str.rindex('/')) # => "/path/to"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...