正则表达式(regulation expression)
几乎是每个语言都会使用到的,比如python,javascript,java,c++,c#,下面我想带大家来写一个能匹配IP的正则表达式,也检验一下自己的学习成果。
首先来了解一下,什么是IP?
IP(Internet Protocol Address,又译为网际协议地址)IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。(这些都是废话…但还是要介绍一下,接下来是干货部分了。)
IP的特点:
- 长度为32位(共有2^32个IP地址),分为4段
- 每段8位,用十进制表示,每段数字范围为0~255,段与段之间用句点隔开
例如: 0.0.0.0 ~ 255.255.255.255
那么接下来就是写0-255的匹配了…
先考虑0-199的范围,也就是
1 | /[0,1]?\d{1,2}/ |
再考虑200-255,也就是
1 | /2([0-4][0-9]|5[0-5])/ |
最后用”|”合并分组
1 | /[0,1]?\d{1,2}|2([0-4][0-9]|5[0-5])/ |
这样就完成了匹配IP第一项的正则表达式。接下来我们来把四组拼接起来。
1 | /([0,1]?\d{1,2}|2([0-4][0-9]|5[0-5]))(\.([0,1]?\d{1,2}|2([0-4][0-9]|5[0-5]))){3}/ |