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

IPV4地址验证的正则表达式

使用regex不是一个好主意。端口的范围为1~65535。因此,我们可以对6553[0-5]655[0-2]'d65[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}))?/$