如何从文件中的read()之后的特定偏移中找到('某些文本')

时间:2018-05-30 08:52:54

标签: python

我打开了一个文件f = open(" somefile.txt"," r") 然后读入变量data = f.read(),现在当我使用data.find(' sometext')时,它给出/显示somefile.txt中第一次出现的偏移量,如果&# 39; sometext'在somefile.txt中重复两次我无法进入第二个。所以我想从特定偏移中找到(),请你举个例子。

2 个答案:

答案 0 :(得分:1)

这是一种获得所有(即使是重叠)匹配的方法:

 [i for i in range(len(data)) if string.startswith('sometext', i)]

答案 1 :(得分:1)

以下是我使用re.finditer的建议,它似乎非常适合查找任何子字符串出现的起始索引:

import re

s = "sometext someothertext sometext sometext someothertext some text someothertext"
result = [m.start() for m in re.finditer('sometext', s)]

print(result)  # [0, 23, 32]