rails上的ruby替换了一些字符串

时间:2013-03-18 06:55:38

标签: ruby-on-rails ruby

我有两个字符串。一个是:

"/system/musics/videos/000/000/001/original/%E5%B9%BF%E5%9C%BA%E8%88%9E%E5%BF%AB%E5%9B%9B_-_%E5%A4%A7%E8%8D%89%E5%8E%9F-%E4%BE%AF%E6%AD%8C.MP3"

第二个是:

"广场舞快四_-_大草原-侯歌.MP3"

我想得到:

"/system/musics/videos/000/000/001/original/广场舞快四_-_大草原-侯歌.MP3"

有谁知道如何在ruby中查找和替换字符串?我的想法是用最后一个'/'替换第二个字符串之后的内容。我该怎么办?

2 个答案:

答案 0 :(得分:3)

first_string = "/system/musics/videos/000/000/001/original/%E5%B9%BF%E5%9C%BA%E8%88%9E%E5%BF%AB%E5%9B%9B_-%E5%A4%A7%E8%8D%89%E5%8E%9F-%E4%BE%AF%E6%AD%8C.MP3"
second_string = "广场舞快四-_大草原-侯歌.MP3"

"#{File.dirname(first_string)}/#{second_string}"

答案 1 :(得分:0)

处理文件名时,特别是如果您的代码有可能在多个操作系统上使用,请使用内置的文件名操作方法dirnamejoin

File.join(
  File.dirname(
    "/system/musics/videos/000/000/001/original/%E5%B9%BF%E5%9C%BA%E8%88%9E%E5%BF%AB%E5%9B%9B_-_%E5%A4%A7%E8%8D%89%E5%8E%9F-%E4%BE%AF%E6%AD%8C.MP3"
  ),
  "广场舞快四_-_大草原-侯歌.MP3"
)

原因是,File.joinFile.dirname知道特定操作系统上使用的文件名分隔符,由File::SEPARATORFile::ALT_SEPARATOR提供,使他们能够分割和加入路径正确。

您也经常会发现File.basenameFile.extname也很有用。