python字符串截取操作

    由于开发需要,大部分时间都是用java来实现需求的,但是由于对python的喜爱,岂是这种程度的事情所能阻止的,因此在闲余之际,还是想要用python来搞一些事情的,闲话就到此为止。
    在最近的需求中,我需要对IP地址进行处理获取网络号和主机号(默认C类IP地址)。
    python中对字符串进行操作可以有正则表达式和切片可供使用,对应java中的是正则表达式和substring。

代码1:
>ip = "192.168.0.1"

首先是截取网络号,正则代码如下:

代码2:
>networkNum = re.match(r"(\d+\.){2}(\d+)",ip).group()


切片代码:

代码3:
>networkNum = ip[0:ip.rindex('.')]

获取主机号,正则代码:

代码4:
>strinfo = re.compile(r"(\d+\.){3}")
>hostNum = strinfo.sub('',ip)
>or:
>hostNum = re.sub(r"(\d+\.){3}","",ip)

    当然用正则表达式获取主机号还有replace方法,但是到写这篇博客的时候我还没研究出如何用replace来获取主机号。

切片代码:

代码5:
> hostNum = ip[ip.rindex('.')+1:]

    从上边的代码中已经看出切片在截取字符串上的强大了,完全一句话就可以搞定,但是其中确实有一些坑存在的。
    首先:在代码5中,需要获取IP最后一段的值,在最开始我写的是:

> hostNum = ip[ip.rindex('.')+1:-1]

    这样的结果是我没有获取到主机号,再仔细研究一下切片后发现切片所适用的数学表达式是 “[ )”,也就是前边的包含的,而后边是不包含的(自幼数学不好,不知道该怎么用专业的方法表述),这个错误可是非常低级,但却又是非常致命的,毕竟 这东西是不会报错的!不会报错的!不会报错的!所以在日常使用中选好方法,做好备注!做好备注!做好备注!,当然这只是在提醒我自己,毕竟我才是小菜鸡。

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,888评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,798评论 19 139
  • 连续几天的阴雨在昨晚结束,亲切的太阳公公用他亮眼的光芒迎来了六月的第一个节日。 余力无精打采地整理着衣服,...
    星谈漫读阅读 1,586评论 0 1
  • 2002年10月7号,承载着新的梦想,我们跨入神圣的大学校园,30位来自五湖四海的同学因此结缘,2007年7月我们...
    牛仔之家阅读 7,106评论 0 1
  • 早上一大早去领新身份证,我看着那已入不惑年的老爸因为怕我错过火车,而客气的同前面人解释:师傅,娃要上学赶火车呢,能...
    一个叫席暖的姑娘阅读 2,256评论 0 0