본문 바로가기
IT silo

파이썬 정규표현식 re 모듈 완전정복: 실전 활용과 꿀팁 총정리!

by 테크사일로 2025. 6. 30.

파이썬 정규표현식 re 모듈 완전정복: 실전 활용과 꿀팁 총정리!

파이썬 정규표현식 re 모듈
파이썬 정규표현식 re 모듈

 

파이썬 정규표현식 re 모듈, 제대로 쓰고 계신가요? 이 글 하나로 정규표현식의 개념부터 re 모듈의 주요 함수, 실전 예제, 메타문자, 패턴 컴파일, 데이터 검증까지 완벽하게 정리해드립니다. 정규표현식은 데이터 분석, 웹 크롤링, 로그 처리, 자동화 등 다양한 분야에서 문자열을 빠르고 정확하게 다루는 핵심 기술입니다.

많은 분들이 "re.match와 search의 차이는?", "findall, sub, compile은 언제 쓰지?", "이메일, 전화번호, 한글 이름 검증은 어떻게 할까?" 등 다양한 고민을 하시죠. 이 글에서 모든 궁금증을 해결하세요!

📋 목차

🔍정규표현식이란? 기본 개념과 활용

정규표현식(Regular Expression)은 특정 규칙(패턴)에 맞는 문자열을 빠르게 검색, 추출, 치환, 검증하는 도구입니다.
이메일, 전화번호, URL, 한글 이름 등 다양한 데이터의 유효성 검사와 텍스트 처리에 필수적으로 사용됩니다.

  1. 복잡한 문자열 패턴도 한 줄로 처리
  2. 웹 크롤링, 로그 분석, 데이터 전처리 등 실무 활용도 높음
  3. 파이썬에서는 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!

🎯실전 활용 예제와 데이터 검증

정규표현식은 데이터 검증, 추출, 치환 등 실전에서 다양하게 활용됩니다.

  1. 이메일 검증
    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 
  2. 전화번호 검증
    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 
  3. 치환 및 제거
    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

반응형