엑셀 정규식 함수 사용법 - REGEXTEST, REGEXEXTRACT, REGEXREPLACE

엑셀 정규식 함수 3종(REGEXTEST, REGEXEXTRACT, REGEXREPLACE) 실전 예제: 이메일/전화번호/날짜 추출

엑셀에서 이메일, 전화번호, 날짜처럼 “형식이 있는 텍스트”를 다룰 때는 보통 LEFT/RIGHT/MID, FIND/SEARCH, SUBSTITUTE를 여러 개 조합하거나 파워쿼리·VBA까지 쓰는 경우가 많았습니다. 그런데 Microsoft 365 엑셀에서는 정규식(Regex) 함수가 제공되면서, 같은 작업을 수식 몇 개로 깔끔하게 처리할 수 있습니다.

이 글에서는 가장 많이 쓰는 정규식 함수 3종(REGEXTEST / REGEXEXTRACT / REGEXREPLACE)을 “검증 → 추출 → 정리(치환)” 흐름으로 실전 예제와 함께 정리합니다.

목차

1. 엑셀 정규식(Regex) 함수 3종이란?

정규식(Regex)은 문자열에서 특정 패턴(규칙)을 찾는 문법입니다. 엑셀에서는 아래 3개가 가장 핵심입니다.

  • REGEXTEST: 특정 패턴이 “포함되어 있는지” 확인 → 결과는 TRUE/FALSE
  • REGEXEXTRACT: 패턴에 맞는 “문자열을 추출”
  • REGEXREPLACE: 패턴에 맞는 문자열을 “치환(바꾸기)”하여 정리/익명화/포맷 변경

실습 데이터(복사해서 A열에 붙여넣기)

  1. A2: 홍길동 이메일: hong@test.com, 보조: h.gildong+1@gmail.com
  2. A3: 전화: 010-1234-5678 / 내선: 02-312-3456
  3. 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? 등)

Q1. 수식을 입력했는데 #NAME? 오류가 나옵니다.

정규식 함수는 모든 엑셀 버전에 동일하게 제공되지 않을 수 있습니다. 사용 중인 엑셀이 Microsoft 365 최신 업데이트인지 확인하고, 회사/조직 정책(업데이트 채널)에 따라 기능이 늦게 노출될 수도 있습니다.

Q2. 기존 함수들(LEFT/MID/SUBSTITUTE)로도 되는데 굳이 정규식을 써야 하나요?

단순 1~2개 규칙이면 기존 함수로도 충분합니다. 하지만 이메일/전화번호/날짜처럼 “규칙이 있고 예외가 많은 텍스트”는 정규식이 훨씬 짧고 유지보수가 쉽습니다. 특히 데이터 정리·개인정보 마스킹·형식 검증 작업에서는 체감이 큽니다.

Q3. 정규식이 어렵습니다. 어디부터 연습하면 좋을까요?

가장 추천하는 순서는 (1) 숫자만 남기기(2) 이메일 추출(3) 전화번호 포맷 바꾸기 입니다. 이 3개만 익혀도 실무에서 바로 써먹을 수 있습니다.

정리

  • REGEXTEST: 패턴이 있는지 “검사”
  • REGEXEXTRACT: 필요한 값만 “추출”
  • REGEXREPLACE: 불필요 문자 제거/마스킹/포맷 변경 “정리”

엑셀에서 텍스트 정리가 많다면 정규식 함수 3종은 확실히 생산성을 올려주는 기능입니다. 특히 이메일/전화번호/날짜 같은 “형식 데이터”를 다룬다면 한 번 익혀두면 계속 쓰게 됩니다.

함께 보면 좋은 게시글

이 글이 도움이 되셨다면 공유 부탁 드립니다.

위로 스크롤