给定如下URI字符串:
http://www.somesite.com/abc
http://www.somesite.com/alpha/beta/abc
http://www.somesite.com/alpha/abc
在Ruby中,最优雅的方式是什么,可以获取这些URI结尾的abc
?
给定如下URI字符串:
http://www.somesite.com/abc
http://www.somesite.com/alpha/beta/abc
http://www.somesite.com/alpha/abc
在Ruby中,最优雅的方式是什么,可以获取这些URI结尾的abc
?
我会使用一个像URI模块中的合适的URI解析器来获取URI中的路径。然后在/
处分割它并获取其中的最后一部分:
require 'uri'
URI(uri).path.split('/').last
path.chomp('/')
在分割之前将它们移除。 - Gumbouri.split('/')[-1]
或者uri.split('/').last
if url =~ /\/(.+?)$/
last = $1
end
或者
last = File.basename(url)
从终端命令行:
ruby -ruri -e "print File.basename(URI.parse('$URI').path)"
从你的 .rb 源文件内部:
require 'uri'
theURI = 'http://user:pass@example.com/foo/bar/baz/?lala=foo'
uriPathTail = File.basename(URI.parse(theURI).path) # => baz
它可以与您使用的任何合法URI很好地配合使用。
如果您不使用URI.parse(),则url中的任何参数都会被错误地视为URI的最后一段。
uri_string = URI.extract("Test 123 http://www.somesite.com/abc")
以上命令返回一个数组
然后使用以下命令提取URI的最后一部分:
uri_string[0].split('/').last
先决条件:需要在Ruby脚本中添加"uri"要求
Original Answer翻译成"最初的回答"
http://example.com/where?is=pancakes/house%3F
可以翻译为:在这个链接中,"http://example.com/where?is=pancakes/house%3F" 表示 "煎饼屋" 的地址。 - mu is too short