我有以下字符串:
src = "dav://w.lvh.me:3000/Home/Transit/file"
host = "w.lvh.me:3000"
我想要获得的是"/Home/Transit/file"
使用这两个字符串
我想在host
中搜索src
并在第一次出现时删除它,以及之前的所有内容,但我不确定该怎么做。或者也许有更好的方法?
任何帮助将不胜感激!
答案 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"