• ベストアンサー

rubyで末尾から文字を検索する

現在rubyでファイルパスからファイル名を取得したいと思っています。 具体的には"public/foror/filename"というstringがあったとして、このfilenameを取り出したいのです。 なので末尾から検索して最初に/が一致するまでの文字を取り出すという処理を書けばいいと考えて、下記のようなプログラムを書きましたが、うごきません。 p filepath[\/.*$] rubyも正規表現も初心者なので、色々と間違っているところがあるとおもいますが、なにかお気づきになった点がございました、ご指摘いただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • siffon9
  • ベストアンサー率64% (136/211)
回答No.1

正にそのものという機能でFile.basenameというのがあります。 filepath = "public/foror/filename" p File.basename(filepath) #=> "filename" また正規表現リテラルは両端をスラッシュで囲む必要がありますね。 p filepath[/[^\/]+$/] #=> "filename" 下記マニュアルを参照してみてください。 Fileクラスマニュアル http://doc.ruby-lang.org/ja/1.9.3/class/File.html 正規表現リテラル http://doc.ruby-lang.org/ja/1.9.3/doc/spec=2fliteral.html#regexp

lain_003
質問者

お礼

このやり方でやればうまくいきました。 また色々リンクを教えていただきありがとうございます。

関連するQ&A