我尝试使用此代码验证IP地址,但它不起作用......
public static bool IP(string ipStr)
{
string pattern = @"^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$";
Regex check = new Regex (pattern);
bool valid = false;
if (ipStr == "") {
valid = false;
} else {
valid = check.IsMatch (ipStr, 0);
}
return valid;
}
Run Code Online (Sandbox Code Playgroud)
知道什么是错的吗?
L.B*_*L.B 60
我会用IPAddress.TryParse
静态方法代替.
IPAddress ip;
bool b = IPAddress.TryParse("1234.12.12.12",out ip);
Run Code Online (Sandbox Code Playgroud)
匹配有效的IP地址使用
^(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]?)){3}$
Run Code Online (Sandbox Code Playgroud)
代替
^([01]?[0-9][0-9]?|2[0-4][0-9]|25[0-5])(\.([01]?[0-9][0-9]?|2[0-4][0-9]|25[0-5])){3}$
Run Code Online (Sandbox Code Playgroud)
因为许多正则表达式引擎匹配OR序列中的第一种可能性
你可以试试你的正则表达式引擎:10.48.0.200
在这里测试差异
我本身并不是一个真正的正则表达式专家,但我使用 Expresso(一个正则表达式工具),它有自己的正则表达式库,用于像这样的预设场景。试试下面这个。
string pattern = @"(?<First>2[0-4]\d|25[0-5]|[01]?\d\d?)\.(?<Second>2[0-4]\d|25[0-5]|[01]?\d\d?)\.(?<Third>2[0-4]\d|25[0-5]|[01]?\d\d?)\.(?<Fourth>2[0-4]\d|25[0-5]|[01]?\d\d?)";
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24630 次 |
最近记录: |