如何使用 Ruby 1.8.7 从 URL 获取扩展名?

发布于 2024-12-26 09:47:42 字数 131 浏览 0 评论 0原文

我想从此 URL 中找到扩展名 .html

http://testasp.vulnweb.com/Templatize.asp?item=html/about.html

I want to find the extension .html from this URL:

http://testasp.vulnweb.com/Templatize.asp?item=html/about.html

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

日久见人心 2025-01-02 09:47:42

也许是这样的:

URI.parse(url).query[/\.\w+/]

Maybe something like this:

URI.parse(url).query[/\.\w+/]
不念旧人 2025-01-02 09:47:42

Ruby 有 URI 模块,它是标准发行版的一部分,另外还有 Addressable gem:

url = 'http://testasp.vulnweb.com/Templatize.asp?item=html/about.html'

require 'uri'
uri = URI.parse(url)
queries = Hash[uri.query.split('&').map{ |q| q.split('=') }]
puts queries['item']

require "addressable/uri"
uri = Addressable::URI.parse(url)
puts uri.query_values['item']

两者都会输出:

html/about.html

运行时

。 URI 很方便,但 Addressable 非常强大且功能齐全。如果我需要进行大量的 URL 解析或操作,Addressable 就是最佳选择。

一旦您有了 html/about.html,您可以通过多种方式提取扩展名:

path = 'html/about.html'

path[/(\..+)$/, 1] # => ".html"
path.split('.').last # => "html"
File.extname(path) # => ".html"

请注意,使用 split 会删除 .,因此需要在前面添加它再次到 html

Ruby has the URI module, which is part of the standard distribution, plus the Addressable gem:

url = 'http://testasp.vulnweb.com/Templatize.asp?item=html/about.html'

require 'uri'
uri = URI.parse(url)
queries = Hash[uri.query.split('&').map{ |q| q.split('=') }]
puts queries['item']

require "addressable/uri"
uri = Addressable::URI.parse(url)
puts uri.query_values['item']

Both will output:

html/about.html

when run.

URI is convenient, but Addressable is very powerful and full-featured. If I need to do a lot of URL parsing or manipulation Addressable is the way to go.

Once you have html/about.html you can extract the extension several ways:

path = 'html/about.html'

path[/(\..+)$/, 1] # => ".html"
path.split('.').last # => "html"
File.extname(path) # => ".html"

Notice that using split removes . so it would need to be prepended to html again.

感性 2025-01-02 09:47:42

大多数编程语言的通用答案(我不是红宝石人)-

String.substring(String.lastIndexOf("."), String.length);

Generic answer for most programming language (I am not a ruby guy)-

String.substring(String.lastIndexOf("."), String.length);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文