【发布时间】:2014-08-26 14:52:06
【问题描述】:
假设我有这个string ="C:/EFI/Ulta/Filename.rb",我试图从中只拆分“文件名”。
我尝试了 string.split.last,它返回“Filename.rb”,我尝试删除“.rb”,但 drop 方法对我不起作用。我还有其他方法可以使用吗?
【问题讨论】:
-
无法复制。
string.split.last返回"C:/EFI/Ulta/Filename.rb"。 -
我是想写
string.split("/").last -
File#basename最好,但这应该可以工作:"C:/EFI/Ulta/File...name.rb"[/(?:.*\/)?(.+)\.?/,1] => "File...name"。如果文件名前面有正斜杠,则非捕获组(?:.*\/)会吞噬所有字符,直到最后一个正斜杠。?允许文件名位于字符串的开头。如果至少有一个点,则捕获组 (#1)(.+)会消耗直到最后一个点的所有字符。?允许没有文件名后缀的可能性。,1检索捕获组 1 的内容。