Home  >  Article  >  Backend Development  >  How to Find the Nth Occurrence of a Substring in Python?

How to Find the Nth Occurrence of a Substring in Python?

Barbara Streisand
Barbara StreisandOriginal
2024-10-20 07:29:02771browse

How to Find the Nth Occurrence of a Substring in Python?

Finding the Nth Occurrence of a Substring in Python

Finding the nth occurrence of a substring within a string can be achieved through various methods in Python. One straightforward approach is an iterative approach, where the first occurrence of the substring is located and subsequent occurrences are found by incrementally searching after the end of the previous occurrence.

To implement this iterative approach, the following code can be used:

<code class="python">def find_nth(haystack: str, needle: str, n: int) -> int:
    start = haystack.find(needle)
    while start >= 0 and n > 1:
        start = haystack.find(needle, start+len(needle))
        n -= 1
    return start</code>

This function takes the haystack string, the needle substring, and the nth occurrence to find. It returns the index corresponding to that occurrence, or -1 if the occurrence cannot be found.

This approach is relatively straightforward and provides a clear understanding of how the nth occurrence is located. However, it may require multiple passes through the string if the nth occurrence is located far from the beginning of the string.

For example, to find the second occurrence of "foofoo" in the string "foofoofoofoo", the following code can be used:

<code class="python">find_nth("foofoofoofoo", "foofoo", 2)</code>

This will return the index 6, which corresponds to the second occurrence of "foofoo" in the string.

The above is the detailed content of How to Find the Nth Occurrence of a Substring in Python?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn