คุณสามารถค้นหาการเกิดขึ้นที่ n ของสตริงย่อยในสตริงโดยแยกที่สตริงย่อยด้วยการแยก n+1 สูงสุด หากรายการผลลัพธ์มีขนาดใหญ่กว่า 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 การเปลี่ยนแปลงนั้นค่อนข้างเล็กน้อย