正则表达式匹配ip地址

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

会出现不符合ip地址格式的匹配结果,不知道为什么
example:254.0.0.04,不是正确的ip地址匹配格式,但是依然可以匹配成功,但是这个匹配的表达式我觉得写的没毛病,完全不应该匹配上这个结果,但是实际上确实输出了
有人知道原因吗?

正确的匹配格式可以为:
^([1-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))(\.([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))){3}$
结果应该是完全正确的,我没有设计所有的测试用例,如果有错误可以指出来
这个表达式可以通过254.254.0.0,没有匹配0的位置啊?

posted on 2020-09-26 16:24  张芙蓉  阅读(1440)  评论(0编辑  收藏  举报

导航