How to find all occurrences of a substring with Python?

Estimated read time 2 min read

To find all occurrences of a substring within a string in Python, you can use the finditer() function from the re module or utilize string methods. Here’s an example for both approaches:

  1. Using the re module and finditer() function:
import re

text = "Hello, how are you? How's everything going?"

substring = "How"

matches = re.finditer(substring, text)

for match in matches:
    start_index = match.start()
    end_index = match.end()
    print(f"Substring found at index {start_index} - {end_index}: {text[start_index:end_index]}")

In this example, we have a string text and a substring substring that we want to find within the text. We use the re.finditer() function to find all occurrences of the substring in the text. The finditer() function returns an iterator yielding match objects.

We iterate over the match objects and retrieve the start and end indices of each match using the start() and end() methods of the match object. We then print the index range and the corresponding substring found.

  1. Using string methods:
text = "Hello, how are you? How's everything going?"

substring = "How"

start_index = 0
while start_index != -1:
    start_index = text.find(substring, start_index)
    if start_index != -1:
        end_index = start_index + len(substring)
        print(f"Substring found at index {start_index} - {end_index}: {text[start_index:end_index]}")
        start_index += len(substring)

In this example, we use the find() method of the string to find the first occurrence of the substring within the text. We then iterate in a loop and keep searching for the next occurrence of the substring starting from the index immediately after the previous match. The loop continues until no further occurrences are found.

For each match found, we print the index range and the corresponding substring.

Both approaches allow you to find all occurrences of a substring within a string. The choice of approach depends on whether you prefer using regular expressions (re module) or string methods (find()) for the task.

You May Also Like

More From Author

+ There are no comments

Add yours

Leave a Reply