0
我有以下字符串:红宝石 - 从字符串中删除
src = "dav://w.lvh.me:3000/Home/Transit/file"
host = "w.lvh.me:3000"
我想获得是"/Home/Transit/file"
使用这两个字符串
我想在src
寻找host
并删除它的第它出现的时间,以及它之前的一切,但我不确定如何做到这一点。或者也许有更好的方法?
任何帮助,将不胜感激!
我有以下字符串:红宝石 - 从字符串中删除
src = "dav://w.lvh.me:3000/Home/Transit/file"
host = "w.lvh.me:3000"
我想获得是"/Home/Transit/file"
使用这两个字符串
我想在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"
完美的答案。不是所有的东西都应该归结为正则表达式。你需要一个URI解析器来解析URI,而不是另一个正常表达式。 – meagar 2011-05-26 12:33:21
我忘了问,如果'src'中有空格怎么办?例如,如果'src =“dav://w.lvh.me:3000/Home/Transit/Folder 144/webdav_put_request”' – 2011-05-26 13:08:34
@ andrei-s,URI.parse会引发错误,在编辑时介绍了这种情况。 – 2011-05-26 14:23:56