`
923723914
  • 浏览: 628218 次
文章分类
社区版块
存档分类
最新评论

正则表达式应用:匹配IP地址

 
阅读更多

都知道iP地址有四个数值,三个点号组成。三个数值的具体范围为0到255,为了使用正则表达式匹配就必须分析IP地址的组成

  1先分析数值,2再组合数值和点号


  1先分析数值

  IP地址的数字范围从0到255,再细分就是0到99,100到199,200到249,250到255

匹配 0到99的正则表达式是:\d{1,2},含义就是匹配1位或者是两位数字也可以写成[0-9]{1,2}

匹配 100到199的正则表达式是:1\d{2,2},,含义就是以1开头,后边有2个数值也可以写成1[0-9]{2,2}的三位数

匹配 200到249的正则表达式是:2[0-4][0-9],含义就是以2开头,中间是0到4之间的数值,最后是0到9之间的数字的三位数

匹配 250到255的正则表达式是:25[0-5],含义就是以25开头,后边是0到5之间的数值的三位数

所以为了匹配0到255之间的数字,正则表达式为:(\d{1,2})|(1\d{2,2})|(2[0-4][0-9])|(25[0-5])

2再组合数值和点号

IP地址是数值+点号+数值+点号+数值+点号+数值,也就是:数值+点号重复三次,在匹配一个数值

因此匹配IP的正则表达式为:(((\d{1,2})|(1\d{2,2})|(2[0-4][0-9])|(25[0-5]))\.){3,3}((\d{1,2})|(1\d{2,2})|(2[0-4][0-9])|(25[0-5]))

如果需要验证IP地址的话,只需要加上前缀^,后缀$,正则表达式为:^(((\d{1,2})|(1\d{2,2})|(2[0-4][0-9])|(25[0-5]))\.){3,3}((\d{1,2})|(1\d{2,2})|(2[0-4][0-9])|(25[0-5]))$

测试代码:

private static void Test()
    {
      List<string> ipList = new List<string>();
      string ip = "25 23.245.67.899,,255.245.0.,255.245.0,23.245.67.89,255.245.23.9,255.245.0.9";
     // Regex reg2 = new Regex(@"^(((\d{1,2})|(1\d{2,2})|(2[0-4][0-9])|(25[0-5]))\.){3,3}((\d{1,2})|(1\d{2,2})|(2[0-4][0-9])|(25[0-5]))$");验证IP的正则表达式
     
      Regex reg = new Regex(@"(?<ip>(((\d{1,2})|(1\d{2,2})|(2[0-4][0-9])|(25[0-5]))\.){3,3}((\d{1,2})|(1\d{2,2})|(2[0-4][0-9])|(25[0-5])))");
      Match m = reg.Match(ip);
      foreach (Match item in reg.Matches(ip))
      {
        ipList.Add(item.Groups["ip"].Value);           
      }
   
    }

以上只是初步完成了IP地址的匹配,基本够用了,但依然会匹配一些错误的IP,例如0.0.0.0,123.123.123.123.123.123,如果需要去除此类的错误,还需要进一步修改正则表达式。

分享到:
评论

相关推荐

    精通正则表达式~~~

    匹配IP地址... 187 处理文件名... 190 匹配对称的括号... 193 防备不期望的匹配... 194 匹配分隔符之内的文本... 196 了解数据,做出假设... 198 去除文本首尾的空白字符... 199 HTML相关范例... 200 匹配...

    Java-PHP正则表达式的使用

     匹配ip地址:d+.d+.d+.d+  评注:提取ip地址时有用  匹配特定数字:  ^[1-9]d*$ //匹配正整数  ^-[1-9]d*$ //匹配负整数  ^-?[1-9]d*$ //匹配整数  ^[1-9]d*|0$ //匹配非负整数(正整数 + 0)  ^...

    mysql正则表达式(regexp和rlike)的搜索功能实例分析

    例如,我们可以使用正则表达式来搜索电子邮件,IP地址,电话号码,社会安全号码或具有特定模式的任何内容。正则表达式可以由正则表达式处理器解释的自己的语法,正则表达式广泛应用于从编程语言到数据库(包括MySQL)...

    正则表达式

    对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*"。 ^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a" $ 匹配一个输入或一行的结尾,/a...

    常用正则表达式

    常用正则表达式: 验证身份证号 验证一年的12个月 匹配网址URL的正则表达式 应用:计算字符串的长度 应用:利用正则表达式分解和转换IP地址 利用正则表达式限制网页表单里的文本框输入内容 等等...

    java 正则表达式

    function IP2V(ip){re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式if(re.test(ip)){return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1}else{throw new Error(...

    正则表达式30分钟入门教程

    如果能使用算术比较的话,或许能简单地解决这个问题,但是正则表达式中并不提供关于数学的任何功能,所以只能使用冗长的分组,选择,字符类来描述一个正确的IP地址:((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|...

    javascript正则表达式总结

    Regexpal是一个在线Javascript正则表达式处理器,地址是:http://www.regexpal.com 学习正则重要的是实践操作,不妨举个栗子: 匹配号码:707-827-7019 字符组匹配 [0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9]...

    JS输入框邮箱地址验证代码

    匹配ip地址:\d+\.\d+\.\d+\.\d+ 评注:提取ip地址时有用 匹配特定数字: ^[1-9]\d*$ //匹配正整数 ^-[1-9]\d*$ //匹配负整数 ^-?[1-9]\d*$ //匹配整数 ^[1-9]\d*|0$ //匹配非负整数(正整数 + 0) ^-[1-9]\d*|0$ /...

    flex3的cookbook书籍完整版dpf(包含目录)

    如何用正则表达式来为行的开端或结尾进行匹配? 15.15节. 如何使用逆向引用? 15.16节. 如何使用向前查找组或向后查找组语法? 第十六章. 图表(521) 16.1.节创建一个图表 16.2.节. 为图表添加效果 16.3.节在图表中选择...

    JavaScript完全自学宝典 源代码

    10.13.html 匹配IP地址。 10.14.html 匹配Email地址。 10.15.html 匹配网址URL。 10.16.html 匹配手机号码。 10.17.html 匹配中文字符。 第11章(\c11) 示例描述:介绍JavaScript管理cookie和...

    入门学习Linux常用必会60个命令实例详解doc/txt

    ◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup; ◆ 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who; ◆ 其它...

    See-SURF:基于Python的扫描仪以查找潜在的SSRF参数

    屏幕截图使用的技术/框架内置Python3特征将burp的站点地图用作输入,并使用强正则表达式解析并解析文件,该文件与包含可能易受攻击的SSRF关键字(如URL /网站等)的任何GET / POST URL参数匹配。此外,还要检查传递...

    深入云计算 MongoDB管理与开发实战详解pdf.part1

    4.2.9 正则表达式匹配 4.2.10 Javascript 查询和$where 查询 4.2.11 count查询记录条数 4.2.12 limit限制返回记录数 4.2.13 skip 限制返回记录的起点 4.2.14 sort 排序 4.2.15 分页查询 ...

    深入云计算 MongoDB管理与开发实战详解pdf.part2

    4.2.9 正则表达式匹配 4.2.10 Javascript 查询和$where 查询 4.2.11 count查询记录条数 4.2.12 limit限制返回记录数 4.2.13 skip 限制返回记录的起点 4.2.14 sort 排序 4.2.15 分页查询 ...

Global site tag (gtag.js) - Google Analytics