C# 如何解析和验证域&;C中的子域根#

C# 如何解析和验证域&;C中的子域根#,c#,regex,url,dns,subdomain,C#,Regex,Url,Dns,Subdomain,虽然我已经浏览了一些类,但我一直很难找到一种有效的方法来解析/regex域(包括根域和子域,同时包括.co.uk等) 是否有一个功能可以验证它是否是一个正确的域/url,而无需实际连接到站点?我的目标是将其用于一个大的URL列表,以便在TLD之前(包括TLD)获取几乎任何内容。您必须根据您的特定情况调整正则表达式,但这给了您一个起点: const string pattern = @"http[s]?://(?<Domain>([a-zA-Z0-9\-]+?\.)*([a-zA-Z0

虽然我已经浏览了一些类,但我一直很难找到一种有效的方法来解析/regex域(包括根域和子域,同时包括.co.uk等)


是否有一个功能可以验证它是否是一个正确的域/url,而无需实际连接到站点?我的目标是将其用于一个大的URL列表,以便在TLD之前(包括TLD)获取几乎任何内容。

您必须根据您的特定情况调整正则表达式,但这给了您一个起点:

const string pattern = @"http[s]?://(?<Domain>([a-zA-Z0-9\-]+?\.)*([a-zA-Z0-9\-]+\.)*([a-zA-Z]{3,61}|[a-zA-Z]{1,}\.[a-zA-Z]{2,3}))"; //";
var regex = new Regex(pattern, RegexOptions.IgnoreCase);
var match = regex.Match(myURL);
var domain = match.Groups["Domain"].Value;
const string pattern=@“http[s]?:/([a-zA-Z0-9\-]+?\)*([a-zA-Z0-9\-]+\)*([a-zA-Z]{3,61}|[a-zA-Z]{1,}.[a-zA-Z]{2,3}”)//";
var regex=新regex(模式,RegexOptions.IgnoreCase);
var match=regex.match(myURL);
var domain=match.Groups[“domain”].Value;

TLD的可能重复除了有一个很大的列表之外,没有办法确定TLD——Mozilla保留了一个作为公共后缀列表: