Python – Find index of Nth occurrence of substring in string

Find Index of Nth Occurrence of Substring in String

To find the index of Nth occurrence of substring in string in Python, call find() method on the string iteratively for N times with the index (+1) found in the previous iteration as start for searching.

The syntax to find the index of first occurrence of substring search in the string x after a specific start is

x.find(search, start)

Examples

1. Find index of Nth occurrence

In the following program, we take a string x, and a search string search. The values of x and search are such that x contains search. So, find() method must return the index of first occurrence of search in x.

The search is done in non-overlapping mechanism.

Python Program

x = 'apple is red. apple is good. apple is food.'
search = 'apple'
n = 2

start = x.find(search)
while start >= 0 and n > 1:
  start = x.find(search, start+len(search))
  n -= 1

print('Index :', start)
Run

Output

Index : 14

Explanation

apple is red. apple is good. apple is food.
              apple   <- (n=2)th occurrence
0123..      ..13 is the index of nth occurrence

2. Find index of Nth occurrence (Search Overlapping)

In the following program, we find the nth occurrence of search string search int the string x, in overlapping mechanism.

Python Program

x = 'bananabananabanana'
search = 'ana'
n = 4

start = x.find(search)
while start >= 0 and n > 1:
  start = x.find(search, start+1)
  n -= 1

print('Index :', start)
Run

Output

Index : 9

Summary

In this tutorial of Python Examples, we learned how to find the index of Nth occurrence of a search string or substring in a string using str.find() method, with the help of well detailed examples.