Ruby on rails 用ruby解析字符串路径名
我的路径字符串类似于:Ruby on rails 用ruby解析字符串路径名,ruby-on-rails,ruby,regex,Ruby On Rails,Ruby,Regex,我的路径字符串类似于: /some/long/path/filename.extension 我需要在ruby中解析“filename”部分使用File.basename的后缀参数方法: # irb irb(main):001:0> File.basename('/some/long/path/filename.extension', '.*') => "filename" irb(main):002:0> File.basename('/some/long/path/fil
/some/long/path/filename.extension
我需要在ruby中解析“filename”部分使用
File.basename的后缀参数
方法:
# irb
irb(main):001:0> File.basename('/some/long/path/filename.extension', '.*')
=> "filename"
irb(main):002:0> File.basename('/some/long/path/filename.v1.extension', '.*')
=> "filename.v1"
参考:
irb> "/some/long/path/filename.ext1.ext2".gsub(%r{.*/|\..*$},'')
=> "filename"
irb> path = "/some/long/path/filename.ext1.ext2"
=> "/some/long/path/filename.extension"
irb> filename = path[path.rindex('/')+1..-1]
=> "filename.ext1.ext2"
以及裁剪延伸部分:
- 如果要裁剪最后一个,请执行以下操作:
irb> filename[0,filename.rindex('.')] => "filename.ext1"
- 如果要剥离所有扩展(与正则表达式解决方案相同的行为):
还有路径名类:
require 'pathname'
Pathname.new("/a/b/c/d.txt").basename.to_s
=> "d.txt"
require 'pathname'
Pathname.new("/a/b/c/d.txt").basename.to_s
=> "d.txt"