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 に答える