Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 문자열 내 부분 문자열의 마지막 등장 위치를 찾는 방법: rfind() 완벽 가이드

Python에서 부분 문자열의 마지막 등장 인덱스 찾기

Python에는 문자열의 끝에서부터 역방향으로 특정 부분 문자열(substring)이 나타나는 위치를 검색하는 내장 메서드 rfind()가 있습니다. 이 메서드는 부분 문자열을 찾으면 마지막으로 등장한 위치의 인덱스를 반환하고, 찾지 못하면 -1을 반환합니다.

>>> 'some of the some'.rfind('some')
12
>>> 'some of the some'.rfind('none')
-1
>>> "NikolaTesla".rfind('kola')
2

위 예제에서 볼 수 있듯이, 'some of the some' 문자열에서 'some'은 두 번 등장하지만 rfind()는 뒤에서부터 검색하기 때문에 마지막 등장 위치인 12를 반환합니다. 반면 존재하지 않는 'none'을 검색하면 -1이 반환됩니다.

rfind() 메서드의 기본 문법

문자열.rfind(찾을_부분_문자열, 시작_인덱스, 끝_인덱스)
  • 찾을 부분 문자열: 검색 대상이 되는 문자열입니다. (필수)
  • 시작 인덱스 / 끝 인덱스: 선택 사항으로, 지정하면 해당 범위 내에서만 검색을 수행합니다.

검색 범위를 지정한 활용 예제

text = "banana"
print(text.rfind("na"))        # 4  → 전체 문자열에서 마지막 'na'의 위치
print(text.rfind("na", 0, 4))  # 2  → 인덱스 0~3 범위 내에서 마지막 'na'의 위치
print(text.rfind("apple"))     # -1 → 존재하지 않는 문자열

rindex()와의 차이점

동일한 기능을 제공하는 rindex() 메서드도 있습니다. 두 메서드의 차이는 검색에 실패했을 때의 동작입니다. rfind()는 -1을 반환하여 프로그램이 계속 실행되지만, rindex()ValueError 예외를 발생시킵니다.

  • 검색 실패 여부를 조건문으로 간단히 확인하고 싶다면 → rfind()
  • 부분 문자열이 반드시 존재해야 하며, 없을 경우 오류로 처리해야 한다면 → rindex()

참고로 앞쪽(왼쪽)에서부터 첫 번째 등장 위치를 찾으려면 find() 또는 index() 메서드를 사용하면 됩니다. 상황에 맞는 메서드를 선택하면 문자열 검색 로직을 더욱 안전하고 효율적으로 작성할 수 있습니다.