Bạn có thể tìm lần xuất hiện thứ n của một chuỗi con trong một chuỗi bằng cách tách ở chuỗi con có tối đa n + 1 lần tách. Nếu danh sách kết quả có kích thước lớn hơn n + 1, nghĩa là chuỗi con xuất hiện nhiều hơn n lần. Chỉ số của nó có thể được tìm thấy bằng một công thức đơn giản, độ dài của chuỗi ban đầu - độ dài của phần được tách cuối cùng - độ dài của chuỗi con.
Ví dụ
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) Đầu ra
Điều này sẽ cho kết quả:
31
Số n trong này bắt đầu từ 0. Thay đổi điều đó là khá nhỏ.