正则表达式IP地址验证
IPv4的地址格式,一共4段,每段之间用逗号分隔,每段都是0-255之间的十进制数值
string pattern = @"((25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)";string input = "net:tcp//192.168.5.173:65535/MyService";Regex reg = new Regex(pattern);var ret= reg.Matches(input);
将0-255用正则表达式来表示,可以分为以下几段
取值区间 | 正则表达式 | 可合并正则 | 可合并 | 可合并 |
0-9 | \d | [1-9]?\d | 1\d{2}|[1-9]?\d | 25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d |
10-99 | [1-9]\d | |||
100- 199 | 1\d{2} | |||
200-249 | 2[0-4]\d | |||
250-255 | 25[0-5] |
前三段重复三次,所以最后为
((25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)
备注:1\d{2}|[1-9]?\d 这里|前后的顺序不可颠倒,先匹配3位数的,如果顺序颠倒,线匹配到2位就不匹配三位了
转自:https://www.cnblogs.com/olive987/p/5844501.html