Ruby on rails 如何在Rails/Ruby中操作URL?

Ruby on rails 如何在Rails/Ruby中操作URL?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我想操纵一个URL,只获取基本站点名称 例如,我有一个URL: http://stackoverflow.com/questions/ask, http://stackoverflow.com/questions/4988199/rails-3-mechanize-socketerror-getaddrinfo-host-or-name-not-known http://www.google.dk/search?q=ruby+string+manipulation 它应该只返回stacko

我想操纵一个URL,只获取基本站点名称

例如,我有一个URL:

http://stackoverflow.com/questions/ask,
http://stackoverflow.com/questions/4988199/rails-3-mechanize-socketerror-getaddrinfo-host-or-name-not-known
http://www.google.dk/search?q=ruby+string+manipulation
它应该只返回
stackoverflow

另外,如果我有URL:

http://stackoverflow.com/questions/4988199/rails-3-mechanize-socketerror-getaddrinfo-host-or-name-not-known
它还应仅为
堆栈溢出

最后一个示例,如果我有URL:

http://stackoverflow.com/questions/ask,
http://stackoverflow.com/questions/4988199/rails-3-mechanize-socketerror-getaddrinfo-host-or-name-not-known
http://www.google.dk/search?q=ruby+string+manipulation
它应该是
google


除了URL的域名之外,我如何去除所有内容?

最简单的解决方案可能是使用gem为您解决这个问题。安装后,只需执行以下操作:

url = Domainatrix.parse("http://www.google.dk/search?q=ruby+string+manipulation")
url.domain # returns 'google'

在他们的github页面上还有一些代码示例和选项。

最简单的解决方案可能是使用gem为您解决这个问题。安装后,只需执行以下操作:

url = Domainatrix.parse("http://www.google.dk/search?q=ruby+string+manipulation")
url.domain # returns 'google'

他们的github页面上还有一些代码示例和选项。

如果您不想使用单独的gem,可以尝试一些简单的正则表达式

(https?:\/\/)?(www\.)?([^\.]+).* 

如果您不想使用单独的gem,可以尝试一些简单的正则表达式

(https?:\/\/)?(www\.)?([^\.]+).* 

您可以使用std Ruby发行版中已有的内容:

irb(main):001:0> require "uri"
=> true
irb(main):002:0> a = URI.parse("http://www.google.com")
=> #<URI::HTTP:0x3b3eb78 URL:http://www.google.com>
irb(main):003:0> a.host
=> "www.google.com"
irb(main):004:0>
irb(main):001:0>需要“uri”
=>正确
irb(main):002:0>a=URI.parse(“http://www.google.com")
=> #
irb(主):003:0>a.host
=>“www.google.com”
irb(主要):004:0>

您可以使用std Ruby发行版中已有的内容:

irb(main):001:0> require "uri"
=> true
irb(main):002:0> a = URI.parse("http://www.google.com")
=> #<URI::HTTP:0x3b3eb78 URL:http://www.google.com>
irb(main):003:0> a.host
=> "www.google.com"
irb(main):004:0>
irb(main):001:0>需要“uri”
=>正确
irb(main):002:0>a=URI.parse(“http://www.google.com")
=> #
irb(主):003:0>a.host
=>“www.google.com”
irb(主要):004:0>