python——字符串查找
2023-12-15 10:36:50
一、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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!