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

파이썬(Python)에서 문자열이 특정 문자열로 시작하는지 확인하는 2가지 방법

파이썬에서 문자열이 특정 접두사(예: 'XYZ')로 시작하는지 확인해야 하는 경우가 자주 있습니다. 대표적으로 startswith() 메서드를 사용하는 방법과 정규 표현식(re 모듈)을 활용하는 방법, 두 가지가 있습니다.

1. startswith() 메서드 사용하기

파이썬의 String 클래스에는 startswith(string) 메서드가 내장되어 있습니다. 이 메서드는 찾고자 하는 접두사 문자열을 인수로 받으며, 문자열 객체에서 직접 호출합니다. 일치하면 True, 일치하지 않으면 False를 반환합니다.

>>> 'hello world'.startswith('hell')
True
>>> 'hello world'.startswith('nope')
False

startswith() 메서드는 간단하고 직관적이어서 대부분의 경우 이 방법을 권장합니다.

2. 정규 표현식(re 모듈)으로 확인하기

정규 표현식을 활용할 수도 있습니다. re 모듈의 re.search('^' + prefix, string) 함수를 사용하면 됩니다. 정규 표현식에서 ^ 기호는 '문자열의 시작'을 의미하므로, 접두사 앞에 ^를 붙여 검색하면 해당 문자열로 시작하는지 확인할 수 있습니다.

>>> import re
>>> bool(re.search('^hell', 'hello world'))
True
>>> bool(re.search('^nope', 'hello world'))
False

re.search()는 일치하는 객체(Match object) 또는 None을 반환하므로, 불리언 값만 필요한 경우 위 예시처럼 bool()로 감싸주는 것이 좋습니다.

참고: 두 방법의 차이점

  • startswith(): 단순하고 빠르며, 여러 개의 접두사를 튜플 형태로 한 번에 검사할 수도 있습니다. 예: s.startswith(('a', 'b', 'c'))
  • re 모듈: 대소문자 무시(re.IGNORECASE) 같은 추가 옵션이나 더 복잡한 패턴 매칭이 필요할 때 유용합니다.

결론적으로, 단순히 문자열이 특정 접두사로 시작하는지만 확인한다면 startswith() 메서드가 가장 깔끔하고 효율적인 선택입니다.