ショートバージョン - RubyでPython rsplit()をどうやって行うのですか?Ruby:文字を分割して文字列を右から数えて
長いバージョン - 文字列を最初の '。'で2つの部分(名前、サフィックス)に分割したい場合。
name, suffix = name.split('.', 2)
をしかし、私は最後(右端)で分割したい場合:文字、これはうまく仕事をしていません「」文字、私はこれよりもよりエレガントなものを思い付くことができていない:
idx = name.rindex('.')
name, suffix = name[0..idx-1], name[idx+1..-1] if idx
ケース名はそのままであるべきで、サフィックスがあるべきで、元の名前の文字列が全くドットを持たないかもしれないことに注意してください、 nil; 2つ以上のドットを持つこともできます。最後のドットの後のビットのみが接尾辞でなければなりません。あなたができる、
this.split(%r{(.+)\.})
、あなたがrsplit
のリテラルバージョンをしたい場合は、バック
["", "what.to", "do"]
ありがとう! String#rpartitionはRuby 1.8.7にも含まれています。 – alberge
@alberge:確かに、私は答えを決めました。ありがとう! –