আপনি স্ট্রিং-এ সাবস্ট্রিং-এর nth অকুরেন্স max 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 ০ থেকে শুরু হয়। সেটা পরিবর্তন করা খুব সহজ।