【问题标题】:Ruby URI - matching a part of a URLRuby URI - 匹配 URL 的一部分
【发布时间】:2013-02-12 07:35:42
【问题描述】:

我在 ruby​​ 中使用 URI 模块来匹配一个 URL。

require 'uri'
url = URI"http://matchme.projects.foo.com"

需要匹配url的matchme部分,放入变量中。 url 的 matchme 部分将始终位于 http:// 之后和下一个“.projects”之前。

我正在尝试url.scheme,它给了我“http”,如何从那里继续并匹配我的字符串。 matchme部分一直在变化。

【问题讨论】:

    标签: ruby-on-rails ruby uri


    【解决方案1】:

    你可以使用像这样的正则表达式

      "http://matchme.projects.foo.com"[/http:\/\/([a-z0-9\-]*).*/,1]
      => matchme 
    

    如果请求对象可用则

     request.subdomains[0]
    

    会给你最深的子域。

    【讨论】:

    • 虽然我最初认为 URI 会很有用。我认为仅使用正则表达式进行匹配会更有效。谢谢
    • 如果matchme 可能是ma.tch.me,则更好的正则表达式应该是[/http:\/\/(.*)\.projects.*/,1]
    • 更新正则表达式以使用所有有效的子域。检查我的更新。
    猜你喜欢
    • 2014-09-24
    • 2013-10-28
    • 2016-10-07
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多