使用C#正则表达式来解析域名?

Uma*_* A. 7 .net c# regex

我需要从字符串中解析域名.字符串可以变化,我需要确切的域.

字符串示例:

http://somename.de/
www.somename.de/
somename.de/
somename.de/somesubdirectory
www.somename.de/?pe=12
Run Code Online (Sandbox Code Playgroud)

我需要以下面的格式,只有域名tld,和www,如果适用,:

www.somename.de
Run Code Online (Sandbox Code Playgroud)

我如何使用C#做到这一点?

Nie*_*est 13

作为正则表达式解决方案的替代方案,您可以让System.Uri该类为您解析字符串.您只需确保该字符串包含一个方案.

string uriString = "http://www.google.com/search";

if (!uriString.Contains(Uri.SchemeDelimiter))
{
    uriString = string.Concat(Uri.UriSchemeHttp, Uri.SchemeDelimiter, uriString);
}

string domain = new Uri(uriString).Host;
Run Code Online (Sandbox Code Playgroud)

此解决方案还会过滤掉任何端口号,并将IPv6地址转换为其规范形式.


小智 10

我用的很简单

 Uri uri = new Uri("http://www.google.com/search?q=439489");
            string url = uri.Host.ToString();
            return url;
Run Code Online (Sandbox Code Playgroud)

因为通过使用这个你可以肯定.