如何在Python的字符串中找到子字符串的第n个出现?

通过以最大n + 1次拆分在子字符串处进行拆分,可以找到字符串中子字符串的第n次出现。如果结果列表的大小大于n + 1,则表示该子字符串出现了n次以上。它的索引可以通过一个简单的公式找到,即原始字符串的长度-最后分割的部分的长度-子字符串的长度。

示例

def findnth(string, substring, n):
    parts = string.split(substring, n + 1)
    if len(parts) <= n + 1:
        return -1
    return len(string) - len(parts[-1]) - len(substring)
findnth('foobarfobar akfjfoobar afskjdf foobar', 'foobar', 2)

输出结果

这将给出输出:

31

此中的n从0开始。更改它非常简单。