查找子字符串的第一个和最后一个索引的快速方法

时间:2014-03-18 08:37:54

标签: python string indexing

是否有自动查找字符串的第一个和最后一个索引的函数?我想在没有压缩两个索引的情况下做一次这个发现。

下面的代码找到了单词' best'的第一个和最后一个索引。但是,在字符串' txt'中,它会单独执行。

>>> _txt='my best friend'
>>> _str='best'

>>> _txt.find(_str)  # first index
3

>>> _txt.find(_str[-1]) # last index 
6

#Attempt on joining 
1) >>>_txt.find(_str),(_str[-1])
(3, 't')

尝试的输出是错误的。

理想输出:

(3,6)

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

如果只有一个匹配,那么你可以这样做:

start = _txt.find(_str)
end = start + len(_str) - 1

或者,如果有多个匹配项,那么您可以使用re.finditer

matches = [(m.start(0), m.end(0) - 1) for m in re.finditer(_str, _txt)]

答案 1 :(得分:0)

试试这个:

_str ='My best friend.'
getIndexes = lambda x: (_str.find(x[:-len(x)+1]),_str.find(x[len(x)-1:]))
print getIndexes('best')

除了使用lambda函数并在本地检索子字符串的索引之外,你不能“更快”。