匹配IPv4地址的正则表达式

本文虽然给出了匹配IPv4地址的正则表达式,但是更重要的是提供写正则表达式的一种思路。有时候使用程序而不是正则表达式可能是更好的解决方案。

IPv4地址格式可表示为:XXX.XXX.XXX.XXX,XXX的取值范围是0-255,前三段加一个.重复了三次,再与最后一段合并即组成IPv4地址的完整格式。

重点是将0-255用正则表达式表示,以下分几种方法,来分析解决。

方法1

取值区间 特点 正则写法
0-9 取值是0-9 \d
10-99 十位:1-9,个位:0-9 [1-9]\d
100-199 百位:1,十位:0-9,个位:0-9 1\d{2}
200-249 百位:2,十位:0-4,个位:0-9 2[0-4]\d
250-255 百位:2,十位:5,个位:0-5 25[0-5]

最终结果:
^((\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$

方法2

取值区间 特点 正则写法
0-99 十位:1-9或空,个位:0-9 [1-9]?\d
100-199 百位:1,十位:0-9,个位:0-9 1\d{2}
200-249 百位:2,十位:0-4,个位:0-9 2[0-4]\d
250-255 百位:2,十位:5,个位:0-5 25[0-5]

最终结果:
^(([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])$

方法3

取值区间 特点 正则写法
0-99及110-199 百位:1或空,十位:1-9或空,个位:0-9 1?[1-9]?\d
100-149及200-249 百位:1或2,十位:0-4,个位:0-9 [1-2][0-4]\d
250-255 百位:2,十位:5,个位:0-5 25[0-5]

最终结果:
^((1?[1-9]?\d|[1-2][0-4]\d|25[0-5])\.){3}(1?[1-9]?\d|[1-2][0-4]\d|25[0-5])$

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容