我有一个包含路径的字符串:
/var/www/project/data/path/to/file.mp3
我需要获取以'/ data'开头的子字符串并在之前删除所有子字符串。所以,我只需要获得/data/path/to/file.mp3
。
什么是最快的解决方案?
答案 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(\/.+)*/)
它应该返回所有事件。