我有一个文字:
joiskodposkfkfsdpsstopjisjijdjnsndsjijdstopisjidinsindistopskndishf
包含多个"stop"
。我想找到所有位置的索引,其中"停止"发生。我怎样才能做到这一点?我已经尝试了列表,但我似乎只是获得了第一个位置。你可以使用枚举吗?
谢谢!
答案 0 :(得分:2)
您可以使用正则表达式:
import re
for match in re.finditer('stop', text):
print match.start()
答案 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)。