엑셀 정규식 함수 3종(REGEXTEST, REGEXEXTRACT, REGEXREPLACE) 실전 예제: 이메일/전화번호/날짜 추출
엑셀에서 이메일, 전화번호, 날짜처럼 “형식이 있는 텍스트”를 다룰 때는 보통 LEFT/RIGHT/MID, FIND/SEARCH, SUBSTITUTE를 여러 개 조합하거나 파워쿼리·VBA까지 쓰는 경우가 많았습니다. 그런데 Microsoft 365 엑셀에서는 정규식(Regex) 함수가 제공되면서, 같은 작업을 수식 몇 개로 깔끔하게 처리할 수 있습니다.
이 글에서는 가장 많이 쓰는 정규식 함수 3종(REGEXTEST / REGEXEXTRACT / REGEXREPLACE)을 “검증 → 추출 → 정리(치환)” 흐름으로 실전 예제와 함께 정리합니다.
목차
- 1. 엑셀 정규식(Regex) 함수 3종이란?
- 2. REGEXTEST: 패턴이 있는지 검사(TRUE/FALSE)
- 3. REGEXEXTRACT: 원하는 값 추출(이메일/날짜/캡처그룹)
- 4. REGEXREPLACE: 정리/익명화/포맷 변환
- 5. 자주 쓰는 정규식 패턴(치트키)
- 6. 자주 묻는 질문(함수가 안 보일 때, #NAME? 등)
1. 엑셀 정규식(Regex) 함수 3종이란?
정규식(Regex)은 문자열에서 특정 패턴(규칙)을 찾는 문법입니다. 엑셀에서는 아래 3개가 가장 핵심입니다.
- REGEXTEST: 특정 패턴이 “포함되어 있는지” 확인 → 결과는 TRUE/FALSE
- REGEXEXTRACT: 패턴에 맞는 “문자열을 추출”
- REGEXREPLACE: 패턴에 맞는 문자열을 “치환(바꾸기)”하여 정리/익명화/포맷 변경
실습 데이터(복사해서 A열에 붙여넣기)
- A2: 홍길동 이메일: hong@test.com, 보조: h.gildong+1@gmail.com
- A3: 전화: 010-1234-5678 / 내선: 02-312-3456
- A4: 결제일 2025-12-27, 납기 2026/01/05
2. REGEXTEST: 패턴이 있는지 검사(TRUE/FALSE)
REGEXTEST는 “이 셀에 이메일이 있나?”, “휴대폰 번호가 들어있나?”처럼 형식 검증에 가장 많이 씁니다.
2-1) 이메일이 포함돼 있는지 검사
B2에 입력:
=REGEXTEST(A2,"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}")이메일 형식이 있으면 TRUE, 없으면 FALSE가 반환됩니다.
2-2) 휴대폰 번호(010 등)가 포함돼 있는지 검사
B3에 입력:
=REGEXTEST(A3,"01[016789]-?[0-9]{3,4}-?[0-9]{4}")하이픈(-)이 있든 없든 휴대폰 번호 패턴이 잡히도록 만든 예시입니다.
3. REGEXEXTRACT: 원하는 값 추출(이메일/날짜/캡처그룹)
REGEXEXTRACT는 텍스트 속에서 필요한 정보만 뽑아내는 용도로 강력합니다. 고객 데이터 정리, 로그 텍스트에서 값 추출, 문서에서 날짜만 수집할 때 특히 유용합니다.
3-1) 이메일 1개만 추출(첫 번째 매치)
C2에 입력:
=REGEXEXTRACT(A2,"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}")결과 예: hong@test.com
3-2) 이메일을 여러 개 모두 추출(스필 배열)
D2에 입력:
=REGEXEXTRACT(A2,"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}",1)결과가 여러 개면 아래 셀로 “줄줄이(spill)” 내려가면서 표시됩니다.
3-3) 캡처 그룹으로 아이디/도메인 분리하기
먼저 C2(첫 이메일 추출)가 있다고 가정하고, E2에 입력:
=REGEXEXTRACT(C2,"^([^@]+)@(.+)$",2)결과가 2개로 나뉘어 표시됩니다.
- hong
- test.com
이 방식은 “@ 앞/뒤”, “괄호로 묶은 그룹”을 분리할 때 자주 씁니다.
3-4) 날짜만 추출(2025-12-27, 2026/01/05 모두 대응)
C4에 입력:
=REGEXEXTRACT(A4,"[0-9]{4}[./-][0-9]{1,2}[./-][0-9]{1,2}",1)날짜가 여러 개면 배열로 추출되어 아래로 내려갑니다.
4. REGEXREPLACE: 정리/익명화/포맷 변환
REGEXREPLACE는 “불필요한 문자 제거”, “개인정보 마스킹”, “표기 통일”에 좋습니다. 실무에서는 이 함수 하나 때문에 정규식을 배우는 경우도 많습니다.
4-1) 숫자만 남기기(하이픈/공백/문자 제거)
C3에 입력:
=REGEXREPLACE(A3,"[^0-9]","")문자/기호를 다 제거하고 숫자만 남깁니다.
4-2) 휴대폰만 추출 후 숫자만 남기기(추천 조합)
휴대폰만 정확히 뽑고 싶다면 아래처럼 조합합니다.
=REGEXREPLACE(REGEXEXTRACT(A3,"01[016789]-?[0-9]{3,4}-?[0-9]{4}"),"[^0-9]","")4-3) 11자리 숫자를 010-1234-5678 형태로 포맷 변경
예: F3 셀에 01012345678 이 있을 때, G3에 입력:
=REGEXREPLACE(F3,"([0-9]{3})([0-9]{4})([0-9]{4})","$1-$2-$3")()로 묶은 캡처 그룹을 $1, $2, $3로 재배치해서 깔끔하게 포맷을 바꿀 수 있습니다.
4-4) 이메일을 [EMAIL]로 익명 처리(마스킹)
H2에 입력:
=REGEXREPLACE(A2,"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}","[EMAIL]",1)1을 넣으면 첫 번째만 바뀌고, 옵션을 생략하면 전체 치환으로 처리되는 경우가 많습니다(버전에 따라 동작 옵션이 다를 수 있으니 결과로 확인하세요).
5. 자주 쓰는 정규식 패턴(치트키)
[0-9]: 숫자 1개{3,4}: 3~4번 반복?: 0 또는 1번(있어도 되고 없어도 됨)+: 1번 이상 반복.: 아무 글자 1개[^0-9]: 숫자가 아닌 모든 것(): 캡처 그룹(추출/치환에서 재사용)
6. 자주 묻는 질문(함수가 안 보일 때, #NAME? 등)
정규식 함수는 모든 엑셀 버전에 동일하게 제공되지 않을 수 있습니다. 사용 중인 엑셀이 Microsoft 365 최신 업데이트인지 확인하고, 회사/조직 정책(업데이트 채널)에 따라 기능이 늦게 노출될 수도 있습니다.
단순 1~2개 규칙이면 기존 함수로도 충분합니다. 하지만 이메일/전화번호/날짜처럼 “규칙이 있고 예외가 많은 텍스트”는 정규식이 훨씬 짧고 유지보수가 쉽습니다. 특히 데이터 정리·개인정보 마스킹·형식 검증 작업에서는 체감이 큽니다.
가장 추천하는 순서는 (1) 숫자만 남기기 → (2) 이메일 추출 → (3) 전화번호 포맷 바꾸기 입니다. 이 3개만 익혀도 실무에서 바로 써먹을 수 있습니다.
정리
- REGEXTEST: 패턴이 있는지 “검사”
- REGEXEXTRACT: 필요한 값만 “추출”
- REGEXREPLACE: 불필요 문자 제거/마스킹/포맷 변경 “정리”
엑셀에서 텍스트 정리가 많다면 정규식 함수 3종은 확실히 생산성을 올려주는 기능입니다. 특히 이메일/전화번호/날짜 같은 “형식 데이터”를 다룬다면 한 번 익혀두면 계속 쓰게 됩니다.
함께 보면 좋은 게시글
- 엑셀 LEFT, RIGHT, MID 함수 사용법 – 원하는 문자열 추출하기
- 엑셀 FIND, SEARCH 함수 – 특정 문자열 위치 찾기
- 엑셀 TEXT 함수 사용법 – 숫자, 날짜를 텍스트로 변환하기
- 엑셀 특정 문자열 대체하기 – SUBSTITUTE, REPLACE 함수
- 엑셀 셀 텍스트 나누기(구분 기호) – 텍스트 마법사 활용
이 글이 도움이 되셨다면 공유 부탁 드립니다.



