From: Andrew Timberlake Date: 2009-04-22T22:25:34+09:00 Subject: Re: Needed only the Domain name from an url On Wed, Apr 22, 2009 at 2:28 PM, Srikanth Jeeva wrote: > hi, > Suppose if i give, > url="www.google.com/picasa/images/1" > > I need only the string "google" which is the domain name. > > right now i have tried this, > > require 'rubygems' > require 'uri' > url = "http://www.google.com/picasa/images/1" > puts url = URI.parse(url).host > ----------- > output: "google.com" > ----------- > but i want only the word "google". please help. > > Pts: > the domain name can also be, "google.co.in" > ie) for example, "http://www.google.co.in/picasa/images/1" > > Thanks in advance, > srikanth Technically google.com is the domain If I run your code, I get "www.google.com" as the output, not "google.com" This poses an interesting problem because a domain can be: one.two.three.four.google.co.uk What is the domain for you in that? Otherwise you could do something like uri.host.sub(/.*?\.?([^.]+)(?:\.\w{3}|\.\w{2,3}\.\w{2,3})$/, '\1') It may not be the prettiest regex but it gets the job done for the following: * one.two.google.com * one.two.google.co.in * www.somesite.com.au * www.one.co.uk but it won't work for * www.one.com (but it will work for one.com) Andrew Timberlake http://ramblingsonrails.com http://www.linkedin.com/in/andrewtimberlake "I have never let my schooling interfere with my education" - Mark Twain