用python查找字符串‘kdjfinn32n’中的第任意个n的索引。

问题起源:

在这里插入图片描述

断言TTS内容时,需要导入time模块获取配置报警联动的实时时间,并对TTS内容里面的字符串进行处理后断言,可以提高断言的成功率。

方法一、使用re模块寻找索引。

re.finditer()和span()的使用。

def search_n2(alphabet,str1,n):   #alphabet:要查找的字母,str1:整个字符串,n:要查找第n个字母的索引
    f=re.finditer(alphabet,str1)    #返回一个iterator。

    list1=[]
    try:
        for i in f:    #遍历循环f i=<re.Match object; span=(7, 8), match='3'>, 用i.span()取出元组,其元组对应的第一位数字就是索引。
            list1.append(i.span()[0])
            return '字符%s在字符串%s中的索引是%d'%(alphabet,str1,list1[ n - 1 ])
    except:
        return '该字符串没有%d位%s'%(n,alphabet)

print(search_n2('n','kdjfinn32n',1))   #例如我要在该字符串中查找第1个n的索引是多少

这样就可以在一串字符串中取出你想取出的某单个字符的索引了

方法二、使用内置 函数/方法寻找索引。

内置函数/方法 find()的使用

def search_n(string, alphabet_you_want_search, n):#n表示你要查找第几个alphabet
    """寻找第n个字符'a'"""
    r = string.find(alphabet_you_want_search)
    while n > 1 and r >= 0:
        r = string.find(alphabet_you_want_search, r + 1)      #代表从索引r+1后开始找。
        n -= 1
    return r
    
str1='kdjfinn32n'
print(search_n(str1,'n',2))   #我要查找第2个n的索引。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值