簡體   English   中英

軌道上的紅寶石替換一些字符串

[英]ruby on rails replace some 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"

第二個是:

"廣場舞快四_-_大草原-侯歌.MP3"

我想得到:

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

有誰知道如何在ruby中查找和替換字符串? 我的想法是用第二個字符串替換最后一個'/'之后的內容。 我該怎么做?

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}"

處理文件名時,尤其是如果您的代碼有可能在多個操作系統上使用時,請使用內置的文件名處理方法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::ALT_SEPARATOR File::SEPARATORFile::ALT_SEPARATOR ,這使它們能夠正確拆分和File::ALT_SEPARATOR路徑。

您還會經常發現File.basenameFile.extname很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM