Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Create your online store today with Shopify

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Disclosure: My content contains affiliate links.

43,102 questions

55,976 answers

573 users

How to find the starting index of all occurrences of a word in a string in Python

1 Answer

0 votes
"""
    Find all starting indices of a word inside a larger text.
    This function uses str.find in a loop. The method is efficient
    and implemented in optimized C code inside Python's runtime.
"""
def find_all_occurrences(text: str, word: str) -> list[int]:
    indices = []

    # Searching for an empty word is meaningless
    if word == "":
        return indices

    index = text.find(word)  # First occurrence

    while index != -1:
        indices.append(index)  # Store the index

        """
            Search again starting one character after the previous match.
            This allows detection of overlapping matches.
        """
        index = text.find(word, index + 1)

    return indices


def main():
    text = "the quick brown fox jumps over the lazy dog. the fox is clever."
    word = "the"

    print("Text:", text)
    print(f'Word: "{word}"\n')
    print("Occurrences at indices:")

    for idx in find_all_occurrences(text, word):
        print(idx)


if __name__ == "__main__":
    main()


"""
run:

Text: the quick brown fox jumps over the lazy dog. the fox is clever.
Word: "the"

Occurrences at indices:
0
31
45

"""

 



answered Aug 30 by avibootz

Related questions

...