파이썬 정규표현식 쉽게 배우기

정규표현식 소개

복잡해 보이기만 하는 정규표현식, 사실은 간단한 규칙 몇 가지만 알면 게임 끝입니다!

이메일, 전화번호, 날짜, 패턴 찾기 등 데이터를 다루다 보면 꼭 만나게 되는 '정규표현식'. 근데 처음 보면 마치 외계어 같고, 소괄호와 역슬래시들이 어지럽게 섞여 있어서 엄두가 안 나죠. 그래서 복사-붙여넣기로 대충 해결하거나, 계속 수작업으로 데이터를 수정하게 됩니다. 시간은 오래 걸리고, 실수는 꼭 나오고, 속은 답답하죠. 정규표현식만 익히면 다 자동화될 텐데 말이에요! 걱정 마세요. 이번 글에서는 정규표현식의 개념을 아주 쉽게, 예시와 함께 설명해 드립니다. 자주 쓰는 패턴, 응용 방법까지 모두 알려드릴게요. 한 번 이해하면 어디서든 쓸 수 있는 강력한 도구가 됩니다. 실무에서 바로 써먹을 수 있는 코드 중심으로 설명하니까, 이 글 하나만 잘 따라오면 내일부터는 정규표현식으로 데이터 처리 시간 단축 확실합니다. 지금부터 아래 목차를 따라 정규표현식의 세계를 탐험해보세요. 공식 문서도 함께 참고하면 더 풍성한 학습이 될 거예요.

정규표현식이란?

정규표현식이란?

정규표현식은 문자열에서 원하는 패턴을 찾아내기 위한 일종의 '문법 도구'입니다. 복잡해 보이지만, 실제로는 일정한 규칙에 따라 구성된 문자열 매칭 방식이에요. 예를 들어 "이메일 주소만 찾고 싶다"거나 "숫자 3자리 뒤에 오는 영어 단어만 골라내고 싶다" 같은 경우, 정규표현식은 거의 마법처럼 정확하게 찾아줍니다. 파이썬에서는 re 모듈을 통해 이 기능을 사용할 수 있어요.

자주 사용하는 패턴들

자주 사용하는 패턴들
패턴 의미 예시
\d 숫자 한 자리 \d{3} → 3자리 숫자
\w 알파벳/숫자/언더스코어 \w+ → 단어
[a-z] 소문자 a~z 중 하나 [a-zA-Z] → 모든 알파벳

re 모듈의 기본 함수

re 모듈의 기본 함수

파이썬의 re 모듈은 정규표현식을 적용하기 위한 함수들을 제공합니다. 가장 자주 쓰이는 함수는 아래와 같습니다:

  • re.search() – 문자열 내 패턴 하나 찾기
  • re.findall() – 모든 패턴 리스트로 반환
  • re.sub() – 패턴을 다른 문자열로 치환
  • re.split() – 패턴 기준으로 문자열 분할

그룹핑과 역참조

그룹핑과 역참조

정규표현식에서 괄호 ()는 '그룹'을 의미해요. 특정 패턴을 묶어서 따로 추출하거나, 이후에 다시 사용할 수 있게 만드는 거죠. 예를 들어 전화번호에서 지역번호와 번호 본문을 나눌 수 있어요. (\d{2,3})-(\d{3,4})-(\d{4}) 이런 식으로요.


또한 \1, \2와 같은 '역참조'를 활용하면, 그룹에서 매칭된 값을 다시 쓸 수 있습니다.

실전 예제: 이메일, 전화번호 찾기

실전 예제: 이메일, 전화번호 찾기
패턴 목적 정규표현식
이메일 주소 [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
전화번호 \d{2,3}-\d{3,4}-\d{4}

정규표현식 실전 팁과 디버깅 도구

정규표현식 실전 팁과 디버깅 도구
  • 정규표현식 디버깅엔 regex101.com이 최고!
  • 파이썬에서 정규표현식 쓸 땐 항상 r"패턴" 형태로 raw string 사용하기
  • 복잡한 패턴은 주석 달기 가능 → re.VERBOSE
Q 정규표현식 앞에 r은 왜 붙이나요?

백슬래시(\)가 파이썬 문자열에서 이스케이프 문자로 처리되는 걸 방지하기 위해 r"" 형태의 raw string을 씁니다.

Q re.match와 re.search의 차이는 뭔가요?

re.match는 문자열의 시작에서만 매칭을 시도하고, re.search는 전체 문자열에서 매칭되는 첫 부분을 찾습니다.

Q 정규표현식에서 +, *, ? 차이는?

+는 1개 이상, *는 0개 이상, ?는 0개 또는 1개를 의미합니다. 예: \d+ → 하나 이상의 숫자

Q 그룹핑된 값을 어떻게 추출하나요?

매칭 결과 객체의 group(1), group(2)... 함수를 사용하면 각각의 그룹 결과를 가져올 수 있어요.

Q 이메일 정규식 패턴은 어디 참고하나요?

RFC 기준의 복잡한 패턴이 있지만, 일반적으로는 [\w.-]+@[\w.-]+\.\w{2,} 정도면 충분히 활용 가능합니다.

Q 복잡한 정규식을 쉽게 테스트할 수 있는 곳은?

regex101.com 사이트에서 실시간 결과 확인, 설명, 역참조 그룹까지 시각적으로 확인할 수 있어 매우 유용합니다.

정규표현식은 처음엔 어렵고 낯설 수 있지만, 한번 익혀두면 정말 다양한 곳에서 큰 힘이 됩니다. 저도 초반엔 외우기만 했던 패턴들이, 지금은 자동으로 손에서 나올 만큼 익숙해졌거든요. 여러분도 이 글을 통해 하나씩 실습해보고, 복붙이 아닌 진짜 '이해'를 바탕으로 정규표현식을 다뤄보세요. 작은 자동화가 큰 시간 절약이 됩니다!

다음 이전