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ỏ.