파이썬 정규표현식 re 모듈 완전정복: 실전 활용과 꿀팁 총정리!
파이썬 정규표현식 re 모듈, 제대로 쓰고 계신가요? 이 글 하나로 정규표현식의 개념부터 re 모듈의 주요 함수, 실전 예제, 메타문자, 패턴 컴파일, 데이터 검증까지 완벽하게 정리해드립니다. 정규표현식은 데이터 분석, 웹 크롤링, 로그 처리, 자동화 등 다양한 분야에서 문자열을 빠르고 정확하게 다루는 핵심 기술입니다.
많은 분들이 "re.match와 search의 차이는?", "findall, sub, compile은 언제 쓰지?", "이메일, 전화번호, 한글 이름 검증은 어떻게 할까?" 등 다양한 고민을 하시죠. 이 글에서 모든 궁금증을 해결하세요!
📋 목차
🔍정규표현식이란? 기본 개념과 활용
정규표현식(Regular Expression)은 특정 규칙(패턴)에 맞는 문자열을 빠르게 검색, 추출, 치환, 검증하는 도구입니다.
이메일, 전화번호, URL, 한글 이름 등 다양한 데이터의 유효성 검사와 텍스트 처리에 필수적으로 사용됩니다.
- 복잡한 문자열 패턴도 한 줄로 처리
- 웹 크롤링, 로그 분석, 데이터 전처리 등 실무 활용도 높음
- 파이썬에서는 re 모듈로 손쉽게 사용 가능
한줄 요약: 정규표현식은 문자열 검색·검증·치환의 최강 도구!
📝re 모듈 주요 함수와 사용법
파이썬의 re 모듈은 정규표현식 관련 다양한 함수를 제공합니다.
대표 함수와 용도는 다음과 같습니다.
함수 | 설명 | 예시 |
---|---|---|
match() | 문자열 시작부터 패턴 일치 검사 | re.match('a', 'apple') |
search() | 문자열 전체에서 첫 패턴 일치 검사 | re.search('a', 'banana') |
findall() | 모든 일치 문자열을 리스트로 반환 | re.findall('\d', 'a1b2c3') |
sub() | 일치 부분 치환 | re.sub('\d', '*', 'a1b2') |
한줄 요약: match=시작, search=전체, findall=모두, sub=치환!
💡메타문자와 패턴 작성법
정규표현식의 핵심은 메타문자와 패턴입니다. 자주 쓰는 메타문자는 다음과 같습니다.
메타문자 | 설명 | 예시 |
---|---|---|
\d | 숫자(0-9) | '\d{3}' → 3자리 숫자 |
\w | 영문자, 숫자, _ | '\w+' → 단어 |
. | 임의의 한 문자 | 'a.b' → a와 b 사이 아무 문자 |
^, $ | 문자열 시작/끝 | '^abc', 'xyz$' |
패턴 작성 시 r"패턴" 형태의 raw string을 사용하면 역슬래시 오류를 방지할 수 있습니다.
한줄 요약: 메타문자와 raw string으로 강력한 패턴 작성!
⚡패턴 컴파일과 성능 최적화
복잡한 패턴을 반복적으로 사용할 때는 re.compile()로 패턴을 미리 컴파일하면 성능이 향상됩니다.
예시:
import re email_pattern = re.compile(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}') text = "문의: support@example.com" result = email_pattern.findall(text) print(result) # ['support@example.com']
컴파일된 패턴 객체는 match, search, findall 등 다양한 메서드를 제공합니다.
한줄 요약: compile로 성능 UP, 코드 가독성도 UP!
🎯실전 활용 예제와 데이터 검증
정규표현식은 데이터 검증, 추출, 치환 등 실전에서 다양하게 활용됩니다.
- 이메일 검증
def validate_email(email): pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b' return re.match(pattern, email) is not None print(validate_email("test@example.com")) # True
- 전화번호 검증
def validate_phone(phone): pattern = r'^\d{2,3}-\d{3,4}-\d{4}$' return re.match(pattern, phone) is not None print(validate_phone("02-123-4567")) # True
- 치환 및 제거
text = "010-1234-5678" result = re.sub('-', '', text) print(result) # 01012345678
- match=시작, search=전체, findall=모두, sub=치환
- compile로 성능 향상, raw string으로 오류 방지
- 데이터 검증·추출·치환에 정규표현식 적극 활용
한줄 요약: 정규표현식으로 데이터 검증과 전처리 한방에!
💡활용 꿀팁과 주의사항
- 패턴 작성 시 r""(raw string)으로 이스케이프 오류 방지
- match는 문자열 시작, search는 전체, findall은 모든 매칭
- compile로 패턴 객체 재사용, 반복문에서 성능 향상
- sub로 치환, split으로 분할, finditer로 위치 추적
- 복잡한 패턴은 플래그(re.IGNORECASE 등)로 옵션 추가
한줄 요약: re 모듈만 알아도 문자열 처리가 쉬워집니다!
- re 모듈로 정규표현식 패턴 검색, 검증, 치환까지 한 번에!
- match, search, findall, sub, compile 등 함수별 특징 익히기
- 데이터 검증, 추출, 전처리 등 실무에 적극 활용
도움이 되셨다면 공감♥ 눌러주세요!
파이썬 정규표현식 re 모듈, 이제 완벽하게 이해하셨나요? 다음 글에서는 정규표현식 고급 패턴, 웹 크롤링, 데이터 자동화 등 더 깊이 있는 내용을 다룰 예정입니다. 궁금한 점이나 추가 질문은 댓글로 남겨주세요! 구독과 알림 설정도 잊지 마세요.
#파이썬정규표현식 #re모듈 #정규식 #match #search #findall #sub #compile #데이터검증 #파이썬2025
'IT silo' 카테고리의 다른 글
파이썬 map, filter, reduce 함수 완전정리: 실전 예제와 활용 꿀팁! (0) | 2025.06.30 |
---|---|
파이썬 람다 함수 활용 예제 완전정리: map, filter, 정렬까지 한눈에! (0) | 2025.06.30 |
파이썬 JSON 데이터 처리법 완전정리: 실전 예제와 꿀팁 총정리! (2) | 2025.06.30 |
파이썬 예외처리 try-except 완전정복: 안전한 코드의 첫걸음 (1) | 2025.06.30 |
파이썬 상속과 다형성 이해: 객체지향의 핵심을 한눈에! (0) | 2025.06.29 |