|
|
发表于 2016-7-2 21:38:07
|
显示全部楼层
首先你要知道find()各参数的作用,
str.find(sub[, start[, end]])
Return the lowest index in the string where substring sub is found, such that sub is contained in the slice s[start:end]. Optional arguments start and end are interpreted as in slice notation. Return -1 if sub is not found.
各个参数的作用:第一个是你要查找的字符串,第二个是查找的起始位置,第三个是终止位置
所以这行代码中 pj = cont.find('.jpg',ph + 1 ) ph + 1对应的就是查找的起始位置
为什么要这样写呢,你看下面的例子就明白了
比如现在有一串字符串,我需要把其中的图片地址提取出来
- count=r'salfdhhi<img src="Aloha.jpg"fkngskdghl'
复制代码
最终的结果应该是Aloha.jpg
那我①要找到A的位置,②找到g的位置,头尾的位置找到了,那么两个数字中间的就是我要的了
但是①不可以直接搜索A的位置,因为字符串中可能会有很多其他的A干扰,那我就找一个唯一的标志符,那这样前面的<img src=就很好地满足了我的要求,所以我要先把它的位置找到,对应于这行代码
- ph = cont.find('<img src=')
复制代码
②我现在找到了开头,还需要找到结尾,而这里的图片是以.jpg结尾的,所以我接着找.jpg的位置就可以了,而我的.jpg一定实在我图片起始位置的后面,所以我就把起始位置的参数填上,也就是ph + 1,从这里开始往后找。对应的代码就是
pj = cont.find('.jpg',ph + 1 )
其实到这里还没完,你看下面的例子
- >>> count=r'salfdhhi<img src="Aloha.jpg"fkngskdghl'
- >>> count.find('<img src=')
- 8
- >>> count[8]
- '<'
- >>> count.find('.jpg', 9)
- 23
- >>> count[23]
- '.'
- >>> count[8:23]
- '<img src="Aloha'
复制代码
你看最后的结果,其实还不对,所以还应该做一下处理
- >>> count[8+9: 23+4]
- '"Aloha.jpg'
复制代码
把前面<img src=空过去,再把后面的.jpg加回来,这样就完成了最开始的目的 |
|