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

Python에서 문자열이 특정 접미사로 끝나는지 확인하는 방법

endswith() 메서드를 사용한 접미사 확인

Python의 문자열(String) 클래스에는 endswith() 메서드가 내장되어 있어, 문자열이 특정 접미사로 끝나는지 여부를 가장 간단하게 확인할 수 있습니다. 이 메서드는 확인하고자 하는 접미사를 인수로 받으며, 해당 문자열 객체에 대해 호출합니다.

string = 'C:/Users/TutorialsPoint1/~.py'
print(string.endswith('.py'))

실행 결과

True

문자열이 '.py'로 끝나기 때문에 True가 출력됩니다. 만약 접미사가 일치하지 않으면 False가 반환됩니다.

정규표현식(re 모듈)을 사용한 접미사 확인

문자열이 주어진 접미사로 끝나는지 확인하는 또 다른 방법은 정규표현식을 활용하는 것입니다. Python의 re 모듈에서 제공하는 re.search() 함수를 사용하면 됩니다.

정규표현식에서 $ 기호는 '줄의 끝'을 의미합니다. 따라서 접미사 뒤에 $를 붙인 패턴을 검색하면, 해당 접미사로 끝나는 문자열인지 판별할 수 있습니다.

import re

string = 'C:/Users/TutorialsPoint1/~.py'
print(bool(re.search('py$', string)))

실행 결과

True

bool() 변환이 필요한 이유

re.search()는 일치 여부를 불리언 값으로 직접 반환하지 않고, 매치된 정보를 담은 매치 객체(Match Object)를 반환합니다. 패턴이 발견되면 매치 객체를, 발견되지 않으면 None을 반환합니다.

따라서 결과를 명확한 True/False 값으로 얻으려면 위 예제처럼 bool() 함수를 사용해 변환해야 합니다. 매치 객체는 참으로 평가되고, None은 거짓으로 평가되기 때문입니다.

두 방법 비교 및 정리

  • endswith(): 가독성이 좋고 성능이 우수하여 단순한 접미사 확인에는 가장 권장되는 방법입니다.
  • re.search(): 대소문자 무시, 복잡한 패턴 매칭 등 정규표현식의 유연한 기능이 필요할 때 유용합니다.

Python 정규표현식에 대한 자세한 내용은 공식 문서에서 확인할 수 있습니다.