繁体   English   中英

用于 IPV4 地址验证的正则表达式

[英]Regular expression for IPV4 address validation

我需要一些帮助来创建用于 IPV4 地址验证的正则表达式。 我的验证字符串如下..

http?s://IP:port/

我尝试过的内容如下...

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 地址; 但我想修改它以接受端口号。 对此的任何帮助将不胜感激。 预先感谢塞巴斯蒂安

用正则表达式来做这件事不是个好主意。 端口范围为 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}))?/$

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM