Краткая версия. Как сделать python rsplit() в ruby?
Более длинная версия. Если я хочу разбить строку на две части (имя, суффикс) на первом ".". характер, это делает работу красиво:
name, suffix = name.split('.', 2)
Но если я хочу разбить на последнем (самом крайнем) '.' характер, я не смог придумать ничего более элегантного, чем это:
idx = name.rindex('.')
name, suffix = name[0..idx-1], name[idx+1..-1] if idx
Обратите внимание, что исходная строка имени может вообще не иметь точки, и в этом случае имя должно быть нетронутым, а суффикс должен быть равен нулю; он может также иметь более одной точки, и в этом случае только бит после окончательного должен быть суффиксом.