首 页IT知识库收藏内容
当前位置:翔宇亭IT乐园IT知识库Python

Python字符串右端查找函数rfind()函数的用法

减小字体 增大字体 作者:本站  来源:本站整理  发布时间:2021-05-29 11:00:41

有时我们需要在一个字符串中查找子串,借助程序提供的相关函数可以方便的实现这一功能。

Python中提供了一系列函数可以实现该功能,如find()函数index()函数

但有时,我们可能需要从字符串的后端往前搜索子字符串,这与本站前面介绍的find()和index()函数默认从前端开始搜索不同(当然,这两个函数通过指定负数索引可以实现从后端搜索)。

这篇文章将要介绍一个新的函数rfind()可以实现从字符串后端起查找子字符串的功能。

Python中rfind()函数的使用

一、rfind()函数的语法格式

Python中rfind()函数的语法格式如下:

str.rfind(sub[, start[, end]])

语法中,str是被搜索的字符串。

sub是必选参数,指要搜索的子字符串。

start是可选参数,用于指定在str中开始搜索的起始位置;

end是可选参数,用于指定在str中搜索的截止位置。

二、str.rfind()函数的返回值

如果在str中搜索到匹配的sub子串,则返回sub子串在str中的最大索引值,实际上就是最后出现sub时的位置索引引值。如果没有找到sub子串,则返回-1.

如果读者对于字符串索引的概念或方法不是很了解,可以参见这篇文章中介绍的有关内容:Python字符串的索引与访问字符串中的字符

三、str.rind()函数使用示例

1、只给出sub参数

str1 = "翔宇亭IT乐园,IT人的乐园"
pos1 = str1.rfind("IT")
print("pos1=", pos1)
pos2 = str1.rfind("乐园")
print("pos2=", pos2)
pos3 = str1.rfind("biye5u")
print("pos3=", pos3)

输出结果如下:

pos1= 8
pos2= 12
pos3= -1

2、给定start参数

str1 = "翔宇亭IT乐园,IT人的乐园"
pos4 = str1.rfind("IT", 8)
print("pos4=", pos4)
pos5 = str1.rfind("IT", 9)
print("pos5=", pos5)
pos6 = str1.rfind("IT",-5)
print("pos6=", pos6)
pos7 = str1.rfind("IT", -6)
print("pos7=", pos7)

输出结果如下:

pos4= 8
pos5= -1
pos6= -1
pos7= 8

从上面的演示例子和输出结果可以得知:在查找子串时指定的start参数,是包括start处的字符的。上面pos4的例子中指定的start值为8,恰好是最后一个“IT”子串“I”字符所处的位置索引,所以能找到匹配的子串位置,并返回结果:pos4= 8。而在计算pos5时,指定的的start起始位置索引为9,是最后一个“IT”子串“T”字符处的索引,所以从T开始往后无法找到匹配的子串,则pos5= -1.

同时,可以发现rfind也支持负数索引,即从后往前定位的方法。

3、给定end参数

str1 = "翔宇亭IT乐园,IT人的乐园"
pos8 = str1.rfind("IT",0,7)
print("pos8=", pos8)
pos9 = str1.rfind("IT",7,len(str1))
print("pos9=", pos9)
pos10 = str1.rfind("IT",3,-7)
print("pos10=", pos10)

输出结果如下:

pos8= 3
pos9= 8
pos10= 3
以上在Python3.8.2中运行的结果如下图所示:

rfind()函数使用运行结果

四、rfind()与find()功能对比

rfind()函数是返回字符串中子字符串最后出现的位置,find()函数是返回字符串中子字符串首次出现的位置。两者在未检索到子字符串时都返回-1.

本文(完)


如有疑问或内容有误,请留言。

转载请注明出处:翔宇亭IT乐园(http://www.biye5u.com),并给出本文链接地址。

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
愿您的精彩评论引起共鸣,带来思考和价值。
用户名: 查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:
关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2024 biye5u.com. All Rights Reserved.