URL中的域名即是“http://”与第一个“/”之间的部分,这样我们就可以用一下正表达式获取

(?<=http://).+?(?=/)

(?<=http://)即是匹配“http://”后面的部分,(?=/)即是匹配“/”前面的部分,因为一个URL中不只一个“/”,如http://www.yizu.org/bcxg/270.html,为了不匹配成www.yizu.org/bcxg,这里需要把匹配设置成非贪婪模式,即尽可能少地匹配,所以匹配域名的部分为.+?,后面的?就是设置成非贪婪模式(默认是贪婪模式)。为了能够匹配https、ftp等URL可以改成

(?<=://).+?(?=/)

用C#实现的代码如下:

        public string ym(string url)
        {
            Regex r = new Regex("(?<=://).+?(?=/)");
            Match m = r.Match(url);
            if (m.Success)
            {
                return m.Value;
            }
            else
            {
                return null;
            }
        }