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!