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

Python에서 정규 표현식으로 문자열 내부의 부분 문자열 추출하기

정규 표현식(regular expression)의 그룹 캡처(group capturing) 기능을 활용하면 문자열 내부에서 원하는 부분 문자열을 손쉽게 추출할 수 있습니다. 다만, 추출하려는 부분 문자열의 형식과 그 주변에 어떤 텍스트가 위치하는지 미리 파악하고 있어야 합니다.

예제: 금액 정보 추출하기

예를 들어, 한 줄의 텍스트에서 $xxx,xxx.xx 형식으로 된 금액 정보를 추출하고 싶다면 다음과 같이 코드를 작성할 수 있습니다.

import re

text = 'The phone is priced at $15,745.95 and has a camera.'
m = re.search(r'(\$[0-9]*\.[0-9]{2})', text)
if m:
    print(m.group(1))

이 코드를 실행하면 다음과 같은 결과가 출력됩니다.

$15,745.95

코드 설명

  • re.search()는 문자열 전체를 검색하여 패턴과 일치하는 첫 번째 부분을 찾아줍니다.
  • 패턴을 괄호 ()로 묶으면 일치한 부분이 그룹으로 캡처되며, group(1)을 통해 해당 값을 가져올 수 있습니다.
  • r'...' 형태의 raw string을 사용하면 백슬래시 이스케이프 처리로 인한 의도치 않은 동작을 방지할 수 있습니다.
  • mNone인지 확인하는 조건문은 패턴이 일치하지 않을 때 발생하는 오류를 예방해 줍니다.

실제로 사용할 정규 표현식은 적용하려는 상황과 데이터의 형식에 따라 달라질 수 있으므로, 자신의 사용 사례에 맞게 패턴을 적절히 조정하는 것이 좋습니다.