Phiên bản ngắn - Làm thế nào để tôi làm Python rsplit() trong ruby?Ruby: Chia chuỗi ký tự, đếm từ bên phải
Phiên bản dài hơn - Nếu tôi muốn chia chuỗi thành hai phần (tên, hậu tố) ở đầu tiên '.' nhân vật, điều này không được công việc độc đáo:
name, suffix = name.split('.', 2)
Nhưng nếu tôi muốn chia tại cuối cùng (bìa phải) '' nhân vật, tôi đã không thể đưa ra bất cứ điều gì hơn nữa tao nhã hơn thế này:
idx = name.rindex('.')
name, suffix = name[0..idx-1], name[idx+1..-1] if idx
Lưu ý rằng chuỗi tên gốc có thể không có một dấu chấm ở tất cả, trong đó tên trường hợp nên không bị ảnh hưởng và hậu tố nên không; nó cũng có thể có nhiều hơn một dấu chấm, trong trường hợp này chỉ một chút sau dấu chấm cuối cùng sẽ là hậu tố.
Cảm ơn! Chuỗi # rpartition cũng có mặt trong Ruby 1.8.7. – alberge
@alberge: Thật vậy, tôi đã sửa câu trả lời của mình. Cảm ơn! –