Python:在文本中查找单词的索引

时间:2014-11-09 10:42:42

标签: python enumerate

我有一个文字:

  

joiskodposkfkfsdpsstopjisjijdjnsndsjijdstopisjidinsindistopskndishf

包含多个"stop"。我想找到所有位置的索引,其中"停止"发生。我怎样才能做到这一点?我已经尝试了列表,但我似乎只是获得了第一个位置。你可以使用枚举吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用正则表达式:

import re
for match in re.finditer('stop', text):
    print match.start()

https://docs.python.org/2/library/re.html#re.finditer

答案 1 :(得分:0)

备注:请改用re.finditer() solution!它更有效,更易读。


您可以简单地遍历字符串并检查从给定字符开始的字符串是否以' stop'开头。字:

>>> s = 'joiskodposkfkfsdpsstopjisjijdjnsndsjijdstopisjidinsindistopskndishf'
>>> [pos for pos in range(len(s)) if s[pos:].startswith('stop')]
[18, 39, 55]

另一种选择是重复调用s.find('stop', X),其中X是最后一场比赛的位置+ 1(如果你没有匹配,则为0)。