jam*_*mes 5 c# regex ip validation ip-address
我正在做一个使用IP地址的应用程序.我必须验证它们至少从1.0.0.1开始,但是使用下面的代码它接受0.0.0.0:
\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b
Run Code Online (Sandbox Code Playgroud)
我也尝试将其更改为:
\b(25[0-5]|2[0-4][0-9]|[01]?[1-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b
Run Code Online (Sandbox Code Playgroud)
此代码不接受0.0.0.0,但也不接受100.0.0.0到109.0.0.0.
有人可以帮忙吗?
And*_*ren 10
使用
IPAddress addr = IPAddress.TryParse(str);
Run Code Online (Sandbox Code Playgroud)
然后,如果有效,请使用数字
addr.GetAddressBytes();
Run Code Online (Sandbox Code Playgroud)
然后使用正常的if-cases检查正确条件的字节值.
省去自己的痛苦!转换为字符串,按点字符拆分,并检查 4 个段中的每一个段是否在 0 或 1 到 255 的范围内。
否则,如果您使用 RegexBuddy(这是一个很棒的 RegEx 应用程序),它的 Library inc 中有一堆 IP 地址示例,范围为 0.0.0.0 到 255.255.255.255:
\b(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\b
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5133 次 |
最近记录: |