정규 표현식(Regular Expression)이란?
정규 표현식은 주로 문자열이나 파일 안에서 특정 패턴(pattern)을 찾아내거나 검색·치환할 때 사용되는 하나 이상의 문자 나열입니다. 복잡해 보이지만, 기본 개념만 익히면 텍스트 처리 작업을 훨씬 효율적으로 수행할 수 있습니다.
파이썬 정규식 구문의 두 가지 문자 유형
파이썬의 정규식 구문은 크게 두 종류의 문자로 구성됩니다.
1. 메타 문자(Meta Characters)
이름에서 알 수 있듯이 메타 문자는 일반 문자가 아닌 특별한 의미를 지니는 문자입니다. 파일 검색에서 사용하는 와일드카드 *와 비슷한 역할을 한다고 생각하면 이해하기 쉽습니다.
.: 임의의 한 문자와 매칭^,$: 각각 문자열의 시작과 끝을 의미*,+,?: 앞 문자의 반복 횟수를 지정[ ]: 대괄호 안의 문자 집합 중 하나와 매칭|: OR 조건(선택)을 나타냄( ): 패턴을 그룹으로 묶음
2. 리터럴(Literals)
리터럴은 a, b, 1, 2처럼 그 자체로 문자 그대로의 의미를 가지는 일반 문자입니다. 메타 문자와 달리 특별한 해석 없이 입력된 값 그대로 매칭됩니다.
정규식을 구성하는 주요 문법 요소
파이썬 정규식은 다음과 같은 다양한 구문 도구들을 활용하여 동작합니다.
- 원시 문자열(Raw String) :
r'...'형태로 작성하여 백슬래시(\)가 이스케이프 문자로 해석되지 않도록 함 - 수량자(Quantifier) : 문자나 패턴이 반복되는 횟수를 지정 (
*,+,{n,m}등) - 문자 클래스(Character Class) :
[a-z],\d,\w처럼 매칭 대상이 될 문자의 범위를 정의 - 그룹(Group) : 괄호를 사용해 패턴의 일부를 묶어 추출하거나 재사용
- 선택(Alternation) :
|기호로 여러 패턴 중 하나와 매칭
이러한 요소들을 조합하면 이메일 주소 검증, 전화번호 추출, 로그 분석 등 복잡한 텍스트 처리 작업도 몇 줄의 코드로 손쉽게 해결할 수 있습니다.