为了账号安全,请及时绑定邮箱和手机立即绑定

在Python中查找字符串中多次出现的字符串

在Python中查找字符串中多次出现的字符串

饮歌长啸 2019-08-27 15:50:47
在Python中查找字符串中多次出现的字符串如何在Python中的字符串中找到多次出现的字符串?考虑一下:>>> text = "Allowed Hello Hollow">>> text.find("ll")1>>>所以第一次出现的ll是1,如预期的那样。我如何找到它的下一个出现?同样的问题对列表有效。考虑:>>> x = ['ll', 'ok', 'll']如何查找所有ll索引?
查看完整描述

3 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

使用正则表达式,您可以使用re.finditer查找所有(非重叠)出现的事件:


>>> import re

>>> text = 'Allowed Hello Hollow'

>>> for m in re.finditer('ll', text):

         print('ll found', m.start(), m.end())


ll found 1 3

ll found 10 12

ll found 16 18

或者,如果您不想要正则表达式的开销,您也可以重复使用str.find以获取下一个索引:


>>> text = 'Allowed Hello Hollow'

>>> index = 0

>>> while index < len(text):

        index = text.find('ll', index)

        if index == -1:

            break

        print('ll found at', index)

        index += 2 # +2 because len('ll') == 2


ll found at  1

ll found at  10

ll found at  16

这也适用于列表和其他序列。


查看完整回答
反对 回复 2019-08-27
?
狐的传说

TA贡献1804条经验 获得超3个赞

使用正则表达式,您可以使用re.finditer查找所有(非重叠)出现的事件:


>>> import re

>>> text = 'Allowed Hello Hollow'

>>> for m in re.finditer('ll', text):

         print('ll found', m.start(), m.end())


ll found 1 3

ll found 10 12

ll found 16 18

或者,如果您不想要正则表达式的开销,您也可以重复使用str.find以获取下一个索引:


>>> text = 'Allowed Hello Hollow'

>>> index = 0

>>> while index < len(text):

        index = text.find('ll', index)

        if index == -1:

            break

        print('ll found at', index)

        index += 2 # +2 because len('ll') == 2


ll found at  1

ll found at  10

ll found at  16

这也适用于列表和其他序列。


查看完整回答
反对 回复 2019-08-27
  • 3 回答
  • 0 关注
  • 3270 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信