IP地址的正则表达式
关键字:IP地址 正则表达式 IP地址的长度为32位,分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用英文句点“.”隔开。例如:某台计算机IP地址为10.11.44.100。 分析IP地址的组成特点:250-255、200-249、0-199。 于是0-99的正则表达式可以合写为[1-9]?d,那么0-199用正则表达式就可以写成(1d{2})|([1-9]?d),这样0~255的正则表达式就可以写成(25[0-5]|2[0-4]d|((1d{2})|([1-9]?d))) ((?:(?:25[0-5]|2[0-4]d|((1d{2})|([1-9]?d))).){3}(?:25[0-5]|2[0-4]d|((1d{2})|([1-9]?d))))
与大家互动一下: 1. 为什么三位数的匹配放在二位数/一位数的前面?因为正则表达式规则之一:最先开始的匹配拥有最高的优先权。
#1楼
2012-07-26 16:20
小子欠扁
(?: 匹配不获取
支持(0)
反对(0)
@小子欠扁 不对哦
支持(0)
反对(0)
http://pic.cnitblog.com/face/340216/20130404192440.png
@txw1958
怎么不对,用小括号的时候会匹配到分组里面去,加上?:就不会捕获到分组了
支持(0)
反对(0)
@小子欠扁 对了
支持(0)
反对(0)
http://pic.cnitblog.com/face/340216/20130404192440.png
貌似222.16.228.22a或222.16.228.2ba可以通过正则验证,不知什么原因?博主可否详细介绍?:用法,有点不清楚哦,谢谢!
支持(0)
反对(0)
http://pic.cnitblog.com/face/u306032.jpg?id=03220912
@竹墨轩 只匹配数字部分,字母部分没有包括进来
支持(0)
反对(0)
http://pic.cnitblog.com/face/340216/20130404192440.png
@竹墨轩 ?: 不分组
支持(0)
反对(0)
http://pic.cnitblog.com/face/340216/20130404192440.png
0.x.x.x,x非零,是不合法的ip地址
是否要考虑进去,这样就复杂多了
支持(0)
反对(0)
@duandetao 这样的话,建议进行二次匹配,
支持(0)
反对(0)
http://pic.cnitblog.com/face/340216/20130404192440.png
错误:
192.168.0.12201212 校验通过!
支持(0)
反对(0)
@sznszbd 正则表达式是用来匹配的
支持(0)
反对(0)
http://pic.cnitblog.com/face/340216/20130404192440.png
@duandetao
((25[0-5])|(2[0-4]d)|(1dd)|([1-9]d)|[1-9])(.((25[0-5])|(2[0-4]d)|(1dd)|([1-9]d)|d)){3}这个可以
支持(0)
反对(0)
这个正则式不对啊,255.0.0.256的匹配结果是255.0.0.25
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |