c#使用正则表达式匹配ipv4地址

   Ipv4地址主要特征就是4个范围0到255的数,中间以.分割   所以要达成的效果就是(0-255).(0-255).(0-255).(0-255)

   首先从匹配0-255开始:

   匹配250-255:25[0-5]

   匹配200-250:2[0-4]/d

   匹配100-199:1/d{2}

   匹配10-99:[1-9]/d

   匹配0-9:/d

   从上面匹配10-99和0-9中的式子可以看出 如果要匹配0-99的话用:[1-9]?/d即可 意思是:前面[1-9]出现0次到1次

   所以匹配0-255的话用:

   ^(?:(25[0-5])|(2[0-4]\d)|((1\d{2})|([1-9]?\d)))$ //注意复制的时候 不要多加

   ^  $的意思是对应的表示从这里开始^到$部分结束(?:pattern) 表示将pattern部分组合成一个可统一操作的组合项 这里相当于是一个匹配[0-255]的一个组合项

  剩下的部分就简单了 首先重复再这个组合项后面加一个.然后重复三次,最后再加一次0-255的判断即可

  最后的表达式为: @"^(?:(?:(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)))$";

  附上我的代码:

  

 <span style="white-space:pre">	</span>static void Main(string[] args)
        {
            string ipPattern = "^((25[0-4]|2[0-4]|1\\d{2}|[1-9]?\\d)\\.){3}(25[0-4]|2[0-4]|1\\d{2}|[1-9]?\\d)$";
            Regex regex = new Regex(ipPattern);
            string ip = "192.168.0.8";
            Console.WriteLine(regex.IsMatch(ip));
            Console.ReadKey();
        }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值