คุณสามารถค้นหาการเกิดขึ้นที่ 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 การเปลี่ยนแปลงนั้นค่อนข้างเล็กน้อย