Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีหาตำแหน่งครั้งที่ n ของสตริงย่อยในสตริงใน Python

สามารถหาตำแหน่งครั้งที่ 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 ทำได้ง่าย