[英]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]\\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}))?/$
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.