正则表达式模式 - 允许在 ip 和主机名后使用“”,“”和“:”

本文关键字:主机 模式 ip 正则表达式 | 更新日期: 2023-09-27 18:36:40

我有以下用于IP验证的正则表达式:

^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])'.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$

和用于主机名验证的正则表达式:

^([a-zA-Z0-9]([a-zA-Z0-9'-_]{0,61}[a-zA-Z0-9])?'.)*[a-zA-Z0-9]([a-zA-Z0-9'-_]{0,61}[a-zA-Z0-9])?$

我必须如何更改它们以允许验证:

1) Ip - 172.17.1.1:80 和 172.17.1.1

,80 和 172.17.1.1

2) 主机名 - 计算机名称:80,以及计算机名称,80计算机名称

正则表达式模式 - 允许在 ip 和主机名后使用“”,“”和“:”

已经讨论过

public static bool IsValidHostAddress(string hostAddress)
{
    const string Pattern =  @"^(([0-9]{1,3}.){3}([0-9]{1,3})|localhost):'d+$";
    var regex = new Regex(Pattern, RegexOptions.Compiled);
    return regex.Match(hostAddress).Success;
}

为什么不使用Uri.CheckHostName(string name)方法?

确定指定的主机名是否为有效的 DNS 名称。

参数名称包含以下文档:

要验证的主机名。这可以是 IPv4 或 IPv6 地址或因特网主机名。