Python:在tex中查找单词的索引

2024-09-19 23:32:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一条短信:

joiskodposkfkfsdpsstopjisjijdjnsndsjijdstopisjidinsindistopskndishf

它包含几个"stop"。我想找到索引的所有地点“停止”发生。我该怎么做?我试过名单,但我似乎只得到了第一个位置。你能用枚举法吗?在

谢谢!在


Tags: 短信stop地点名单joiskodposkfkfsdpsstopjisjijdjnsndsjijdstopisjidinsindistopskndishf
2条回答

可以使用正则表达式:

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

https://docs.python.org/2/library/re.html#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)。

相关问题 更多 >