Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 문자열에서 n번째 부분 문자열을 찾는 방법은 무엇입니까?

<시간/>

최대 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부터 시작합니다. 이를 변경하는 것은 매우 간단합니다.