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

Python에서 문자열을 역방향으로 검색하는 방법 – rfind() 메서드 완벽 가이드

Python에서 문자열 안에 특정 부분 문자열(substring)이 마지막으로 나타나는 위치를 찾고 싶다면 rfind() 메서드를 사용하면 됩니다. 이 메서드는 이름 그대로 문자열의 끝(오른쪽)부터 거꾸로 검색을 진행하며, 부분 문자열을 찾으면 해당 위치의 인덱스를 반환하고, 찾지 못한 경우에는 -1을 반환합니다.

rfind() 메서드 기본 사용법

아래 예제를 보면 rfind()가 어떻게 동작하는지 쉽게 이해할 수 있습니다.

>>> "CocacolaPepsi".rfind('cola')
4
>>> 'CocacolaPepsi'.rfind('coke')
-1

첫 번째 예제에서는 'cola'가 문자열 "CocacolaPepsi" 내에서 인덱스 4 위치에서 시작하므로 4가 반환됩니다. 반면 두 번째 예제에서는 'coke'라는 부분 문자열이 존재하지 않기 때문에 -1이 반환됩니다.

find()와 rfind()의 차이점

find()는 문자열의 앞(왼쪽)에서부터 검색하여 첫 번째로 발견된 위치를 반환하고, rfind()뒤(오른쪽)에서부터 검색하여 마지막으로 발견된 위치를 반환합니다.

>>> "hello world hello".find('hello')
0
>>> "hello world hello".rfind('hello')
12

검색 범위 지정하기

rfind()는 선택적으로 시작 인덱스종료 인덱스를 인자로 받아 검색 범위를 제한할 수도 있습니다.

>>> "hello world hello".rfind('hello', 0, 10)
0

위 예제에서는 인덱스 0부터 10 미만까지만 검사하기 때문에, 뒤쪽에 있는 'hello'가 아닌 앞쪽의 'hello'(인덱스 0)가 결과로 반환됩니다.

정리

  • rfind(): 문자열 끝에서부터 검색, 마지막 등장 위치의 인덱스 반환
  • 부분 문자열이 없으면 -1 반환 (예외 발생 없음)
  • 검색 범위를 지정하는 start, end 매개변수 지원

문자열에서 특정 패턴의 마지막 위치를 확인해야 할 때 rfind()는 간단하고 안전하게 활용할 수 있는 유용한 메서드입니다.