python——字符串查找

发布时间:2023年12月18日

一、str.find方法

? ? ? ? 检测字符串中是否包含子字符串,如果指定范围内包含指定索引值,返回的是索引值在字符串中的起始位置,否则返回-1。

语法:str.find(sub, begin, end)

参数说明:

str:被索引的字符串

sub:目标检索的字符或者字符串

begin:可选,遍历的起始位置,默认为0,即字符串首字符

end:可选,遍历的结束位置,默认为最后的位置,但不包括结束位置的字符。注意规定了end必须要有begin

例:

import sys

str = "hello world"

print(str.find('E'))  #输出结果为1
print(str.find('or')) #输出结果为7
print(str.find('l', 3)) #输出结果为3
print(str.find('l5')) #输出结果为-1

二、str.rfind()方法

? ? ? ? 返回字符串最后一次出现的位置,如果没有匹配项则返回-1。

语法:str.rfind(sub, begin, end)

参数说明:

str:被索引的字符串

sub:目标检索的字符或者字符串

begin:可选,遍历的起始位置,默认为0,即字符串首字符

end:可选,遍历的结束位置,默认为最后的位置,但不包括结束位置的字符。

import sys

str = "hello world"

print(str.rfind('l'))  #输出结果为9
print(str.rfind('or')) #输出结果为7
print(str.rfind('o', 4, 7)) #输出结果为4
print(str.rfind('l5')) #输出结果为-1

三、str.index()方法

? ? ? ? 检测字符串中是否包含子字符串,如果指定范围内包含指定索引值,返回的是索引值在子字符串中的起始位置,否则返回ValueError异常。

语法:str.index(sub, begin, end)

参数说明:

str:被索引的字符串

sub:目标检索的字符或者字符串

begin:可选,遍历的起始位置,默认为0,即字符串首字符

end:可选,遍历的结束位置,默认为最后的位置,但不包括结束位置的字符。

例:

import sys

str = "hello world"

print(str.index('e'))#输出结果为1
print(str.index('or'))#输出结果为7
print(str.index('l', 3)) #输出结果为3
print(str.index('l5')) #抛出异常ValueError: substring not found

补充:str.index()与str.find()的区别:

区别str.index()str.find()
返回值若字符串存在,则返回的是一个整数,表示子字符串在字符串中第一次出现的位置;如果字符串不存在,则抛出ValueError异常若字符串存在,则返回的是一个整数,表示子字符串在字符串中第一次出现的位置;如果字符串不存在,则返回-1
处理速度会先使用快速匹配算法进行一次匹配,如果匹配成功则直接返回匹配位置,因此查找速度较快。使用朴素的匹配算法,需要逐字符进行匹配,因此查找速度较慢
应用场景一般用于知道要查找的子字符串一定会在字符串中出现一般用于不确定子字符串是否存在,因为不会抛出异常

文章来源:https://blog.csdn.net/qq_41872042/article/details/134986377
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。