python 字符串提取操作_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]

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值