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;
}
}