ruby - 从字符串中删除

时间:2011-05-26 12:20:59

标签: ruby string

我有以下字符串:

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

我想要获得的是"/Home/Transit/file"使用这两个字符串

我想在host中搜索src并在第一次出现时删除它,以及之前的所有内容,但我不确定该怎么做。或者也许有更好的方法?

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:8)

确实有更好的方法:

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"

答案 1 :(得分:2)

这应该做的工作:

src = "dav://w.lvh.me:3000/Home/Transit/file"
host = "w.lvh.me:3000"
result = src.sub(/.*#{host}/, '')
#=> "/Home/Transit/file"