如果我有一個網址:在Ruby中解析URL以獲取沒有「www」的子域或主域?
http://www.example.com/page
我想解釋的是到:
example.com
但是,如果我有:
http://blog.example.com/page
我想找回:
blog.example.com
這很難嗎?
如果我有一個網址:在Ruby中解析URL以獲取沒有「www」的子域或主域?
http://www.example.com/page
我想解釋的是到:
example.com
但是,如果我有:
http://blog.example.com/page
我想找回:
blog.example.com
這很難嗎?
使用Ruby的URI模塊:
require 'uri'
URI.parse('http://www.example.com/page').host
=> "www.example.com"
URI.parse('http://blog.example.com/page').host
=> "blog.example.com"
在這兩種情況下,URI提取整個主機名,因爲有選擇地剝離從域名主機是沒有意義的。
你必須單獨實現這一邏輯,使用類似:
%w[http://www.example.com/page http://blog.example.com/page].each do |u|
puts URI.parse(u).host.sub(/^www\./, '')
end
,輸出:
example.com
blog.example.com
您可以使用URI
class;例如:
require 'uri'
uri1 = URI.parse("http://www.example.com/page")
puts uri1.host.gsub(/www\./i, "") #This will print example.com
uri2 = URI.parse("http://blog.example.com/page")
puts uri2.host #This prints blog.example.com
gsub
將簡單地取代"www"
,不區分大小寫,用於""
。
'.gsub(/ www \ ./ i,「」 )'也會輸出''foowww.com'.gsub(/ www \。/ i,「」) =>「foocom」 –
請注意,對於給定域,「www.example.com」不一定等同於「example.com」。 (在實踐中,這不僅僅在理論上是如此。) –
生成的域不會用於顯示以外的其他任何內容,但是感謝提示 – Alfo