正则表达式模式 - 允许在 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 和计算机名称
已经讨论过
了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 地址或因特网主机名。