최대 n+1 분할로 하위 문자열을 분할하여 문자열에서 하위 문자열의 n번째 발생을 찾을 수 있습니다. 결과 목록의 크기가 n+1보다 크면 하위 문자열이 n번 이상 발생한다는 의미입니다. 인덱스는 원래 문자열의 길이 - 마지막으로 분할된 부분의 길이 - 하위 문자열의 길이인 간단한 공식으로 찾을 수 있습니다.
예시
def findnth(string, substring, n): parts = string.split(substring, n + 1) if len(parts) <= n + 1: return -1 return len(string) - len(parts[-1]) - len(substring) findnth('foobarfobar akfjfoobar afskjdf foobar', 'foobar', 2)
출력
이것은 출력을 줄 것입니다:
31
여기서 n은 0부터 시작합니다. 이를 변경하는 것은 매우 간단합니다.