2011-03-15 59 views

回答

2
str = "/home/chief/project/public/system/uploads/000/000/001/original/1/1.flv" 
chopped = str.sub(/.*\/public/, "") #=> "/system/uploads/000/000/001/original/1/1.flv" 

這將刪除一切公衆(包括/公共)的左側。這樣你的代碼就不是特定於某個位置,而是它更具可移植性,因爲你可以在/ public前面添加任何內容,並且它仍然會去除字符。

0
s = "/home/chief/project/public/system/uploads/000/000/001/original/1/1.flv" 
s.sub("/home/chief/project/public", "") 

這應該做的伎倆。

+0

謝謝。如果我想剝離它的結尾,並使其像/ home/chief/project/public/system/uploads/000/000/001 /那樣如何。這需要一個正則表達式嗎?考慮到原始數字會有所不同。 – merlin 2011-03-15 16:22:22

+0

如果您之後添加此行: s.sub(「/ original/1/1.flv」,「」) 它應該適合您。可能有一些稍微好一點的方法,我不知道,因爲我一段時間都沒有做過Ruby,但是我已經展示過的應該可以做到。 – 2011-03-15 16:32:34

+0

@dean ...'考慮到原來的數字是不同的'是她說的..你的解決方案不會工作... – rubyprince 2011-03-15 16:57:17

0

您應該指定使用哪種語言。 使用sed是微不足道的。

echo "\"/home/chief/project/public/system/uploads/000/000/001/original/1/1.flv" | sed -e 's-\"/home/chief/project/public--' 
+1

問題標籤爲ruby – willcodejavaforfood 2011-03-15 16:18:52

+0

好的。我沒看到標籤。 – Luixv 2011-03-15 16:21:30