ip正则表达式

  • Post author:
  • Post category:其他




网上关于正则表达式的文章很多,但是感觉并没有很准确的ip正则表达式。



以下是个人的理解,此文章是面对对于正则表达式有一定已经的人群来说的。








首先


我们需要把ip地址给拆分成几段,每个地址池都是由0~255来着。





0-9:

\d





10-199:

这个要往下拆分成两段





10-19&100-199:

1\d?\d





20-99:

[2-9]\d





200-249:

2[0-4]\d





250-255:

25[0-5]




然后

,解释以下出现的正则表达式符号所表达的意义。




\d:


匹配一个数字字符。等价于[0-9]




?:


匹配0或1个正好在它之前的那个字符。就是它之前的字符可以出现一次或者不出现;





{}:


匹配指定数目的字符. 比如3{2}就是出现两次3。







[a-z]:

字符范围。匹配指定范围内的任意字符。比如[0-9]等价于0-9数字中的一个,[a-z]指代所有小写字母其中的一个。










|:

将两个匹配条件进行逻辑“或”(Or)运算。










最后

,我们将分开的几段表达式进行组合;







如果是分段匹配的话(对.之间的ip段进行匹配),只需要







25[0-5]|2

[0-4]

\d|1\d?\d|[2-9]\d|\d







但如果是对整段ip地址进行匹配的话







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




注:这里默认的ip地址是由


0.0.0.0~255.255.255.255;





如有错误,欢迎提出。



版权声明:本文为qq_34685879原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。