3

我有一个包含路径的字符串:

/var/www/project/data/path/to/file.mp3

我需要获取以'/data'开头的子字符串并删除它之前的所有内容。所以,我只需要得到/data/path/to/file.mp3.

最快的解决方案是什么?

4

4 回答 4

5
'/var/www/project/data/path/to/file.mp3'.match(/\/data.*/)[0]
=> "/data/path/to/file.mp3"
于 2012-10-24T16:45:12.720 回答
3

可能很简单:

string = '/var/www/project/data/path/to/file.mp3'

path = string[/\/data.*/]

puts path
=> /data/path/to/file.mp3
于 2012-10-24T19:49:55.503 回答
1

使用正则表达式是一个好方法。虽然我对 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演示上的链接

我认为 ruby​​ 中的代码类似,您可以查看文档。希望它有帮助。

于 2012-10-25T04:27:32.253 回答
-1

请试试这个:

"/var/www/project/data/path/to/file.mp3".scan(/\/var\/www(\/.+)*/)

它应该返回所有事件。

于 2012-10-24T16:42:00.160 回答