匹配 IP 地址与域名的正则表达式

所属分类: 网络编程 / 正则表达式 阅读数: 840
收藏 0 赞 0 分享

一个完整的域名,由根域、顶级域、二级、三级……域名构成,每级域名之间用点分开,每级域名由字母、数字和减号构成(第一个字母不能是减号),不区分大小写,长度不超过63。

单独的名字可以由正则表达式[a-zA-Z0-9][-a-zA-Z0-9]{0,62}来匹配,而完整的域名至少包括两个名字(比如google.com,由google和com构成),最后可以有一个表示根域的点(在规范中,最后有一个点的才是完整域名,但一般认为包括两个以上名字的域名也是完整域名,哪怕它后面没有点)。

匹配完整域名的正则表达式:

复制代码 代码如下:

[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?

一个IP字串,由四段组成,每一段是0~255的数字,段与段之间用小数点隔开,比如61.139.2.69就是一个合法的IP字串。

  如果正则表达式写成\d{1,3}(\.\d{1,3}){3}无疑是不负责的,因为它可以匹配300.400.555.666这样的非法IP字串。

  要匹配一个0~255之间的数,有几种匹配方式,下面是其中一种:

匹配 正则表达式 说明

  0~9 \d 单个数字
  10~99 [1-9]\d 两位数
  100~199 1\d\d 百位为1的三位数
  200~249 2[0-4]\d 三位数,百位是2,十位是0~9
  250~255 25[0-5] 三位数,百位是2,十位是5,个位是0~5

  写成正则表达式,即:(\d|([1-9]\d)|(1\d\d)|(2[0-4]\d)|(25[0-5])),但是这样的正则表达式在匹配254这样的字串时,会分别匹配2、5、4,得到3个匹配,达不到预期效果,正确做法是将次序颠倒为((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d),因为在(xxx|yyy)这种匹配行为中,是从左向右搜索的。

  完整的正则表达式是: 

 

复制代码 代码如下:

((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d)(\.((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d)){3}

  按:

  象061这样的高位为0的数是不能被匹配的。

因此,最上面(1. 部分)的写法才是正确完整版的,(2. 部分)的写法较为片面

更多精彩内容其他人还在看

正则表达式详细介绍(上)

这篇文章主要介绍了正则表达式,正则表达式是由英文词语regular expression翻译过来的,就是符合某种规则的表达式。本文将会详细的介绍正则表达式,需要的朋友可以参考下
收藏 0 赞 0 分享

正则表达式详细介绍(下)

这篇文章继续介绍了更多关于正则表达式知识点,帮助大家更好的认识正则表达式,从而更好的掌握它,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

比较常用证件正则表达式验证大全

最近做项目,有项目需求需要对各种常用的证件进行验证。而港澳通行证,台湾通行证,护照这些证件,在网上没有搜到正则验证的方法,后来经过一番折腾,结合validator这个验证插件写了一些代码,在此分享给大家,需要的朋友可以参考下
收藏 0 赞 0 分享

正则表达式实现将MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式

这篇文章主要介绍了正则表达式实现将MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式的方法,是一个比较简单实用的正则替换应用,对于怎能则表达式的学习具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

js使用正则子表达式匹配首字母与尾字母相同单词的方法

这篇文章主要介绍了js使用正则子表达式匹配首字母与尾字母相同单词的方法,可实现将多行文本框中首位字母相同的单词进行匹配的功能,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

正则表达式中的正向预查和负向预查实例分析

这篇文章主要介绍了正则表达式中的正向预查和负向预查,实例分析了正向预查和负向预查的概念与具体用法,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

js正则表达式中的单行模式与多行模式实例分析

这篇文章主要介绍了js正则表达式中的单行模式与多行模式,实例分析了js正则表达式中实现单行模式与多行模式的技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

js正则查找match()与替换replace()用法实例

这篇文章主要介绍了js正则查找match()与替换replace()用法,实例分析了js中正则的查找match()与替换replace()的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

js正则表达式test()和exec()用法实例

这篇文章主要介绍了js正则表达式test()和exec()用法,实例分析了test()函数和exec()函数在进行正则匹配时的使用技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

php正则替换变量指定字符的方法

这篇文章主要介绍了php正则替换变量指定字符的方法,涉及php使用正则表达式进行字符串替换的技巧,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多