Краткая версия - Как сделать Python rsplit() в ruby?Ruby: Разделить строку на символ, считая с правой стороны
Более длинная версия - если я хочу разбить строку на две части (имя, суффикс) в первой '.' характер, это делает работу хорошо:
name, suffix = name.split('.', 2)
Но если я хочу, чтобы разделить на последний (крайний справа). " характер, я не был в состоянии придумать что-нибудь более элегантное, чем это:
idx = name.rindex('.')
name, suffix = name[0..idx-1], name[idx+1..-1] if idx
Обратите внимание, что исходная строка имени не может иметь точку на всех, в которых имя случае должно быть нетронутым и суффикс должен быть ноль; он может также иметь более одной точки, и в этом случае только суффикс после окончательного должен быть суффиксом.
Спасибо! Строка # rpartition также присутствует в Ruby 1.8.7. – alberge
@alberge: Действительно, я исправил свой ответ. Благодаря! –