>>> text = "Allowed Hello Hollow">>> text.find("ll")1>>>
所以第一次出现的ll是1,如预期的那样。我如何找到它的下一个出现?
同样的问题对列表有效。考虑:
>>> x = ['ll', 'ok', 'll']
如何查找所有ll索引?
饮歌长啸
浏览 3271回答 3
3回答
精慕HU
使用正则表达式,您可以使用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 3ll found 10 12ll 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') == 2ll found at 1ll found at 10ll found at 16这也适用于列表和其他序列。
使用正则表达式,您可以使用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 3ll found 10 12ll 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') == 2ll found at 1ll found at 10ll found at 16这也适用于列表和其他序列。