문자열에서 n번째 하위 문자열 찾기
n번째 하위 문자열 발생에 해당하는 인덱스를 식별하는 것은 다양한 프로그래밍 시나리오에서 자주 발생하는 작업입니다. Python에는 이러한 목적으로 특별히 설계된 내장 함수가 없습니다. 그러나 이 결과를 얻기 위해 사용할 수 있는 접근 방식은 여러 가지가 있습니다.
한 가지 간단한 접근 방식은 루프를 사용하여 문자열을 반복하고 하위 문자열의 발생 횟수를 계산하는 것입니다. 시작 인덱스는 첫 번째 발생 결과로 초기화되고 n번째 발생이 발견될 때까지 루프가 계속됩니다.
<code class="python">def find_nth_occurrence(haystack, needle, n): index = haystack.find(needle) while index >= 0 and n > 1: index = haystack.find(needle, index + len(needle)) n -= 1 return index</code>
이 방법은 효율적이고 이해하기 쉽지만 여러 번의 통과가 필요합니다. 큰 문자열의 경우 시간이 많이 걸릴 수 있습니다.
또 다른 Python 방식은 정규식을 사용하는 것입니다. 정규식은 문자열을 검색하고 조작하는 강력하고 간결한 방법을 제공합니다. 다음 함수는 re.findall() 메서드를 사용하여 하위 문자열의 모든 항목을 찾은 다음 n번째 인덱스를 검색합니다.
<code class="python">import re def find_nth_occurrence_regex(haystack, needle, n): occurrences = re.findall(needle, haystack) if len(occurrences) >= n: return haystack.index(occurrences[n - 1]) else: return -1</code>
이 메서드는 큰 문자열에 대한 반복 접근 방식보다 빠르지만 추가 모듈(재)을 가져와야 합니다. 또한 일부 사용자에게는 반복 접근 방식보다 가독성이 낮을 수 있습니다.
반복 접근 방식과 정규식 접근 방식 간의 선택은 궁극적으로 현재 작업의 특정 요구 사항에 따라 달라집니다. 작은 문자열의 경우 반복 접근 방식으로 충분할 수 있지만 큰 문자열의 경우 정규식 접근 방식이 더 나은 성능을 제공할 수 있습니다.
위 내용은 Python의 문자열에서 하위 문자열의 n 번째 발생을 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!