我需要一些帮助来创建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地址;但是我想修改它以接受端口号。 任何有关这方面的帮助将不胜感激。 提前致谢 塞巴斯蒂安
答案 0 :(得分:0)
用正则表达式做这个不太好。端口范围为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}))?/$