สามารถหาตำแหน่งครั้งที่ n ของสตริงย่อยในสตริงได้โดยการแยก (split) ที่สตริงย่อยด้วย max splits n+1 หากลิสต์ผลลัพธ์มีขนาดมากกว่า n+1 แสดงว่าสตริงย่อยเกิดขึ้นมากกว่า n ครั้ง ดัชนีสามารถหาได้จากสูตรง่ายๆ: ความยาวสตริงต้นฉบับ - ความยาวส่วนที่แยกออกมา cuối - ความยาวสตริงย่อย
ตัวอย่าง
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 การเปลี่ยนให้เริ่มจาก 1 ทำได้ง่าย