전화번호 형식이 제각각인 엑셀 파일, 어떻게 정리하시나요
거래처 명단이나 고객 데이터를 다루다 보면 전화번호 형식이 “010-1234-5678”, “01012345678”, “010.1234.5678”처럼 제각각인 경우를 자주 마주합니다. 이런 데이터를 하나씩 눈으로 확인하며 고치는 대신, 규칙을 정해 한 번에 찾아 바꾸는 방법이 있습니다. 바로 정규표현식(Regular Expression, 줄여서 regex)입니다.
정규표현식은 “문자열의 패턴을 표현하는 규칙”입니다. 프로그래밍 언어처럼 보이지만 실제로는 몇 가지 기호만 익히면 되는 짧은 문법 체계에 가깝습니다. 이미 엑셀 반복 업무, 파이썬으로 10분 만에 끝내기에서 파이썬으로 취합 업무를 자동화하는 방법을 다뤘는데, 정규표현식은 그 과정에서 텍스트를 다듬는 핵심 도구로 자주 쓰입니다.
정규표현식이 필요한 순간들
실무에서 정규표현식이 유용한 상황은 생각보다 많습니다.
- 전화번호, 사업자등록번호처럼 형식이 정해진 데이터의 유효성 검증
- 이메일 주소만 골라서 추출하기
- 파일명에서 날짜나 문서번호만 뽑아내기
- 여러 공백이나 특수문자를 한 번에 정리하기
- 특정 패턴을 가진 문장만 찾아 삭제하거나 치환하기
예를 들어 공문 제목에 “[긴급]”, “(재발송)” 같은 괄호 표시가 섞여 있을 때, 이런 표시만 골라 제거하는 작업도 정규표현식으로 간단히 처리할 수 있습니다.
기본 기호부터 이해하기
정규표현식은 몇 가지 핵심 기호의 조합으로 이루어집니다.
| 기호 | 의미 | 예시 |
|---|---|---|
\d | 숫자 하나 | \d\d\d → 세 자리 숫자 |
\w | 문자·숫자·언더바 | \w+ → 단어 하나 |
+ | 1개 이상 반복 | \d+ → 숫자 여러 개 |
* | 0개 이상 반복 | a* → a가 없거나 여러 개 |
{} | 반복 횟수 지정 | \d{3} → 숫자 3자리 |
[] | 문자 집합 | [가-힣] → 한글 한 글자 |
^, $ | 문자열의 시작, 끝 | ^010 → 010으로 시작 |
이 정도만 알아도 실무에서 마주치는 대부분의 패턴을 만들 수 있습니다.
파이썬으로 전화번호 형식 통일하기
파이썬의 re 모듈을 사용하면 정규표현식을 코드에서 바로 활용할 수 있습니다. 아래는 다양한 형식의 전화번호를 하이픈 형식으로 통일하는 예시입니다.
import re
def format_phone(raw):
digits = re.sub(r"\D", "", raw) # 숫자가 아닌 문자 제거
if len(digits) == 11:
return re.sub(r"(\d{3})(\d{4})(\d{4})", r"\1-\2-\3", digits)
return raw
samples = ["010-1234-5678", "01012345678", "010.1234.5678"]
for s in samples:
print(format_phone(s))
\D는 숫자가 아닌 모든 문자를 의미합니다. 이를 빈 문자열로 바꾸면 숫자만 남게 되고, 이후 세 자리, 네 자리, 네 자리로 나누어 하이픈을 다시 붙이는 방식입니다. 이 코드를 pandas와 함께 사용하면 엑셀 파일 전체의 전화번호 열을 한 번에 정리할 수 있습니다.
import pandas as pd
df = pd.read_excel("고객명단.xlsx")
df["전화번호"] = df["전화번호"].astype(str).apply(format_phone)
df.to_excel("고객명단_정리.xlsx", index=False)
이메일 주소만 골라 추출하기
텍스트 뭉치에서 이메일 주소만 뽑아야 할 때도 정규표현식이 유용합니다.
import re
text = "문의는 hong@pixelcode.co.kr 또는 sales@pixelcode.co.kr 로 부탁드립니다."
emails = re.findall(r"[\w.+-]+@[\w-]+\.[\w.]+", text)
print(emails)
findall은 패턴에 맞는 부분을 모두 찾아 리스트로 반환합니다. 계약서나 공문 원문에서 담당자 연락처만 정리해야 하는 상황에 바로 응용할 수 있습니다.

엑셀에서도 부분적으로 활용 가능합니다
엑셀 자체에는 정규표현식 함수가 기본으로 없지만, 최근 버전의 Microsoft 365에서는 REGEXEXTRACT, REGEXREPLACE 같은 함수가 순차적으로 도입되고 있습니다. 아직 회사 PC에 해당 기능이 없다면, 데이터 유효성 검사와 드롭다운 목록으로 입력 단계에서 형식을 통제하는 방법과 병행하는 것도 현실적인 대안입니다. 입력 실수를 사전에 막고, 이미 쌓인 데이터는 파이썬으로 일괄 정리하는 식으로 역할을 나누면 효율적입니다.
정규표현식을 배우는 순서
정규표현식은 처음 보면 암호처럼 느껴지지만, 학습 순서를 지키면 어렵지 않습니다.
\d,\w,.같은 기본 문자 클래스부터 익히기+,*,{n}같은 반복 기호로 패턴 길이 조절하기re.sub,re.findall,re.match등 파이썬 함수와 연결해보기- 실제 업무 데이터(전화번호, 사업자번호, 파일명)로 연습하기
- 온라인 정규표현식 테스터로 패턴을 미리 확인하는 습관 들이기
처음부터 완벽한 패턴을 만들려 하기보다, 자신의 업무에서 반복되는 텍스트 문제 하나를 정해 그것부터 해결해보는 방식이 가장 빠릅니다. 이 접근은 비전공 사무직을 위한 코딩 입문 로드맵에서 소개한 학습법과도 맞닿아 있습니다. 무엇을 배울지 고민하기보다, 내 업무의 어떤 반복 작업을 줄일지에서 시작하는 것이 정규표현식 학습에도 그대로 적용됩니다.
마치며
정규표현식은 화려한 기술은 아니지만, 텍스트를 다루는 모든 업무에서 조용히 시간을 아껴주는 도구입니다. 전화번호 형식 통일, 이메일 추출, 파일명 정리처럼 반복되는 작업을 하나씩 자동화하다 보면 어느새 업무 시간이 눈에 띄게 줄어드는 것을 체감하실 수 있습니다. 픽셀앤코드는 이런 실무 중심의 코딩·자동화 교육을 양주 지역 기업 담당자분들께 제공하고 있으며, 필요하신 경우 실제 업무 데이터를 활용한 맞춤형 커리큘럼도 함께 상담해 드리고 있습니다.