IPV4地址验证的正则表达式
本文关键字:正则表达式 验证 地址 IPV4 | 更新日期: 2023-09-27 17:58:43
我需要一些帮助来创建一个用于IPV4地址验证的正则表达式。我的验证字符串如下。。
http?s://IP:端口/
下面是我所尝试的。。。
private bool IsUrlValid(string url)
{
Regex urlRx = new Regex(@"^https?://(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)'.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/$", RegexOptions.IgnoreCase);
return urlRx.IsMatch(url);
}
有了这段代码,我可以完美地验证一个没有端口的IPV4地址;但我想修改这个也接受端口号。如有任何帮助,我们将不胜感激。提前感谢Sebastian
使用regex不是一个好主意。端口的范围为1~65535。因此,我们可以对6553[0-5]
、655[0-2]'d
、65[0-4]'d{2}
、6[0-4]'d{3}
、[1-5]'d{4}
、[1-9]'d{,3}
进行验证。它将为只包含端口的字符串提供以下正则表达式:
^(6553[0-5]|655[0-2]'d|65[0-4]'d{2}|6[0-4]'d{3}|[1-5]'d{4}|[1-9]'d{0,3})$
结合您的IP地址模式:
^https?://(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)'.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?):(6553[0-5]|655[0-2]'d|65[0-4]'d{2}|6[0-4]'d{3}|[1-5]'d{4}|[1-9]'d{0,3})/$
如果端口是可选的:
^https?://(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)'.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(:(6553[0-5]|655[0-2]'d|65[0-4]'d{2}|6[0-4]'d{3}|[1-5]'d{4}|[1-9]'d{0,3}))?/$