개요
정규식(Regular Expression)은 문자열에서 특정 패턴을 찾아 원하는 데이터를 추출할 때 매우 유용한 도구입니다. 파이썬에서는 기본 제공되는 re 모듈을 사용하여 손쉽게 정규식을 활용할 수 있습니다.
다음 예제는 주어진 파일명 문자열에서 first_id, category, second_id와 같은 데이터를 추출하는 방법을 보여줍니다.
예제 코드
import re s = 'TS001B01.JPG' match = re.match(r'(TS\d+)([A|B])(\d+)\.JPG', s) first_id = match.group(1) category = match.group(2) second_id = match.group(3) print(first_id) print(category) print(second_id)
정규식 패턴 설명
위 정규식 패턴의 각 그룹은 다음과 같은 역할을 합니다:
- (TS\d+) — 'TS'로 시작하고 그 뒤에 오는 하나 이상의 숫자를 캡처합니다 → first_id
- ([A|B]) — 'A' 또는 'B' 문자를 캡처합니다 → category
- (\d+) — 하나 이상의 연속된 숫자를 캡처합니다 → second_id
- \.JPG — 파일 확장자 '.JPG' 부분을 매칭합니다.
실행 결과
이 코드를 실행하면 다음과 같은 출력을 얻을 수 있습니다:
TS001 B 01
핵심 포인트
match.group(n) 메서드를 사용하면 정규식에서 괄호 ()로 묶인 캡처 그룹(capture group)에 해당하는 부분 문자열을 순서대로 가져올 수 있습니다. 즉, group(1)은 첫 번째 그룹, group(2)는 두 번째 그룹, group(3)은 세 번째 그룹의 값을 반환합니다.
이처럼 정규식의 캡처 그룹을 활용하면 복잡한 형식의 문자열에서도 필요한 데이터만 깔끔하게 분리해 낼 수 있습니다.