正则表达式 ip地址

正则表达式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

原文地址:https://www.cnblogs.com/FashionDoo/p/10685631.html