我有一個包含路徑的字符串:如何在用Ruby添加一些單詞後獲得部分字符串?
/var/www/project/data/path/to/file.mp3
我需要以「/數據」的子和前全部刪除。所以,我只需要獲得/data/path/to/file.mp3
。
什麼是最快的解決方案?
我有一個包含路徑的字符串:如何在用Ruby添加一些單詞後獲得部分字符串?
/var/www/project/data/path/to/file.mp3
我需要以「/數據」的子和前全部刪除。所以,我只需要獲得/data/path/to/file.mp3
。
什麼是最快的解決方案?
請試試這個:
"/var/www/project/data/path/to/file.mp3".scan(/\/var\/www(\/.+)*/)
它應該返回你所有出現。
string = '/var/www/project/data/path/to/file.mp3'
path = string[/\/data.*/]
puts path
=> /data/path/to/file.mp3
'/var/www/project/data/path/to/file.mp3'.match(/\/data.*/)[0]
=> "/data/path/to/file.mp3"
這可以簡化爲:''/var/www/project/data/path/to/file.mp3'[%r [(/data.*)],1]' –
@TheTinMan ,很酷的事情,甚至不能認爲這是可能的 – megas
可能是一樣容易。雖然我不熟悉ruby,但我認爲ruby應該有一些像「substring()」(可能是ruby中的別名)的函數。
這裏是一個演示通過使用javascript:
var str = "/var/www/project/data/path/to/file.mp3";
var startIndex = str.indexOf("/data");
var result = str.substring(startIndex);
而上的jsfiddle demo
的鏈接,我認爲在Ruby中的代碼是相似的,你可以查看文檔。希望這是有幫助的。
使用正則表達式是一個好辦法:爲
這不起作用。 –
是用於雙反斜槓 – QuarK