ruby - удалить из строки - PullRequest
0 голосов
/ 26 мая 2011

У меня есть следующие строки:

src = "dav://w.lvh.me:3000/Home/Transit/file"
host = "w.lvh.me:3000"

Я хочу получить "/Home/Transit/file" с использованием этих двух строк

Я думал о поиске host в src иудалите его в первый раз, когда он появится, и все до него, но я точно не знаю, как это сделать.Или, может быть, есть лучший способ?

Любая помощь будет признательна!

Ответы [ 2 ]

8 голосов
/ 26 мая 2011

Существует действительно лучший способ:

require 'uri'
src = "dav://w.lvh.me:3000/Home/Transit/file"
src = URI.parse src

src.path      # => "/Home/Transit/file"

Если в строке есть пробелы, вы должны пройти дополнительный шаг экранирования / эскапинга. К счастью, это просто:

require 'uri'
src = "dav://w.lvh.me:3000/Home/Transit/Folder 144/webdav_put_request"
src = URI.parse(URL.escape src)

URL.unescape(src.path)      # => "/Home/Transit/Folder 144/webdav_put_request"
2 голосов
/ 26 мая 2011

Это должно сделать работу:

src = "dav://w.lvh.me:3000/Home/Transit/file"
host = "w.lvh.me:3000"
result = src.sub(/.*#{host}/, '')
#=> "/Home/Transit/file"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...