ruby-从字符串中删除

问题描述

| 我有以下字符串:
src = \"dav://w.lvh.me:3000/Home/Transit/file\"
host = \"w.lvh.me:3000\"
我想用这两个字符串得到ѭ1 我曾想过在
src
搜索
host
并在它第一次出现时将其删除以及它之前的所有内容,但是我不确定该怎么做。还是有更好的方法? 任何帮助,将不胜感激!     

解决方法

确实有更好的方法:
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\"
    ,这应该可以完成以下工作:
src = \"dav://w.lvh.me:3000/Home/Transit/file\"
host = \"w.lvh.me:3000\"
result = src.sub(/.*#{host}/,\'\')
#=> \"/Home/Transit/file\"