python——字符串查找

一、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
处理速度会先使用快速匹配算法进行一次匹配,如果匹配成功则直接返回匹配位置,因此查找速度较快。使用朴素的匹配算法,需要逐字符进行匹配,因此查找速度较慢
应用场景一般用于知道要查找的子字符串一定会在字符串中出现一般用于不确定子字符串是否存在,因为不会抛出异常

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值