首页 新闻 赞助 找找看

如何从地址字符串中获取域名(不用Uri)

0
悬赏园豆:50 [已关闭问题] 关闭于 2011-10-18 11:21

如字符串为:

string a="http://www.cnblogs.com";
string b="http://q.cnblogs.com";
string c="http://www.google.com.hk/webhp"

如何获取这几个地址的域名?

我知道可以用Uri得到:

Uri a=new Uri(a);
Uri b=new Uri(b);
Uri c=new Uri(c);
string ahost=a.Host;
string bhost=b.Host;
string chost=c.Host;

但用这个要联网,我想要的效果是离线也可判断,也就是说仅根据地址字符串来判断,不用Uri,不知道有没有比较准确的方法

artwl的主页 artwl | 专家六级 | 园豆:16736
提问于:2011-10-18 11:16
< >
分享
所有回答(1)
0

是这样的吗?

public static string GetUrlDomainName(string strHtmlPagePath)
{
string p = @"http://[^\.]*\.(?<domain>[^/]*)";
Regex reg = new Regex(p, RegexOptions.IgnoreCase);
Match m = reg.Match(strHtmlPagePath);
return m.Groups["domain"].Value;
}
LCM | 园豆:6876 (大侠五级) | 2011-10-18 11:23

刚才发现用Uri很快,现在还不确定需不需要联网,先用着看吧,还是谢谢你啊

你这个好像有些问题,因为后面可能跟很多参数

支持(0) 反对(0) artwl | 园豆:16736 (专家六级) | 2011-10-18 11:25

@天行健 自强不息: 你说的是后面跟着的?a=111这种参数?用正则匹配掉就可以了。Uri也很快,假如联网的话确实用uri会好些。

支持(0) 反对(0) LCM | 园豆:6876 (大侠五级) | 2011-10-18 11:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册