我尝试编写一个表达式来验证以下模式:
digit[0-9] 1 次恰好是
"dot"
digit[0-9] 1-2 次
"dot"
digit[0-9] 1-3 次
"dot"
digit[0-9] 1-3 次或“连字符”</p>
例如,这些是合法的数字:
1.10.23.5
1.10.23.-
这些不是:
10.10.23.5
1.254.25.3
我使用 RegexBuddy 编写了下一个模式:
[0-9]\.[0-9]{1,2}\.[0-9]{1,3}\.[0-9]{1,3}|[0-9]\.[0-9]{1,2}\.[0-9]{1,3}\.-
在 RegexBuddy 中,一切似乎都很完美,但在我的代码中,我对非法数字越来越了解(比如 10.1.1.1)
我编写了下一个验证此模式的方法:
public static bool IsVaildEc(string ec)
{
try
{
if (String.IsNullOrEmpty(ec))
return false;
string pattern = @"[0-9]\.[0-9]{1,2}\.[0-9]{1,3}\.[0-9]{1,3}|[0-9]\.[0-9]{1,2}\.[0-9]{1,3}\.-";
Regex check = new Regex(pattern);
return check.IsMatch(ec);
}
catch (Exception ex)
{
//logger
}
}
我究竟做错了什么?