正则表达式IP地址验证
IPv4的地址格式,一共4段,每段之间用逗号分隔,每段都是0-255之间的十进制数值
string pattern = @"((25[0-5]|2[0-4]d|1d{2}|[1-9]?d).){3}(25[0-5]|2[0-4]d|1d{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 |
1d{2}|[1-9]?d |
25[0-5]|2[0-4]d|1d{2}|[1-9]?d |
10-99 | [1-9]d | |||
100- 199 | 1d{2} | |||
200-249 | 2[0-4]d | |||
250-255 | 25[0-5] |
前三段重复三次,所以最后为
((25[0-5]|2[0-4]d|1d{2}|[1-9]?d).){3}(25[0-5]|2[0-4]d|1d{2}|[1-9]?d)
备注:1d{2}|[1-9]?d 这里|前后的顺序不可颠倒,先匹配3位数的,如果顺序颠倒,线匹配到2位就不匹配三位了
转自:https://www.cnblogs.com/olive987/p/5844501.html