如何使用Ruby获得一些字符串后的部分字符串?

时间:2012-10-24 16:36:44

标签: ruby regex string

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

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

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

什么是最快的解决方案?

4 个答案:

答案 0 :(得分:5)

'/var/www/project/data/path/to/file.mp3'.match(/\/data.*/)[0]
=> "/data/path/to/file.mp3"

答案 1 :(得分:3)

可以很简单:

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

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

puts path
=> /data/path/to/file.mp3

答案 2 :(得分: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 demo

上的链接

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

答案 3 :(得分:-1)

请试试这个:

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

它应该返回所有事件。