python正则表达式匹配合法IP

闲着无聊,计划练习一下正则表达式,所以找了一个相对熟悉的问题--用正则表达式匹配合法的IP地址,个人觉得这个表达式很有必要练一练,让后就根据IP地址的类型写了第一个表达式(1\d{0,2}|2[0-5]{0,2}|[1-9]\d|[1-9])\.(1\d{0,2}|2[0-5]{2}|\d{3})\.(1\d{0,2}|2[0-5]{0,2}|\d{3})\.(1\d{0,2}|2[0-5]{0,2}|\d{2}|[1-9])功能是实现了,但是太麻烦了,然后就开始各种简化,然后就这样了(([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]),但是还有一个问题就是第四个号段只能取两位,第三位不现实也不报错。

经过百般调试发现了在最后一个分组中必须在最后加上$,表示匹配字符串结尾。正确代码就是:r"(([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])$"

还有一点注意的是中间有一个 . 默认是匹配任意字符,也就是说即使不是Ip地址的正确格式只要符合IP地址的基本格式都能匹配,这也是错误的,所以必须在.前加上\. ,同时在正则表达式前加上r 。

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

相关阅读更多精彩内容

  • 正则表达式到底是什么东西?字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等...
    狮子挽歌阅读 6,521评论 0 9
  • 忘了从哪收集的资料了,放这儿,以备不时之需。 只能输入数字:"^[0-9]*$"。 只能输入n位的数字:"^\d{...
    study_monkey阅读 5,261评论 0 7
  • 推荐几个正则表达式编辑器 Debuggex :https://www.debuggex.com/ PyRegex:...
    木易林1阅读 14,007评论 9 151
  • མུན་འོག་གི་ཁྱེད། ཉག===ན་བུན་གྱིས ཁ་བཤད་གསེར་གྱི...
    26d9f0e04041阅读 832评论 0 0
  • 昨晚得知一个朋友在一个电台里为我点了一首歌,而且还私信了电台主播想对我说的话,很感动,虽然我没听到,其实最近过得一...
    素颜娇阳阅读 1,382评论 0 0

友情链接更多精彩内容