대량의 텍스트 데이터에서 필요한 정보만 정확하게 추출하는 작업은 많은 시간과 노력이 필요합니다. 구글 시트의 정규표현식 함수를 활용하면 이러한 반복 작업을 자동화하여 업무 효율성을 획기적으로 높일 수 있습니다. 이메일 주소, 전화번호, 특정 패턴의 코드 등을 자동으로 추출할 수 있으며, 복잡한 문자열 처리도 간단한 수식으로 해결됩니다. 본 글에서는 REGEXEXTRACT 함수의 기본 문법과 활용법부터 실무에서 자주 사용하는 정규표현식 패턴 예제, 그리고 고급 텍스트 처리 기법까지 체계적으로 설명드립니다. 데이터 분석 업무나 고객 정보 정제 작업에서 즉시 적용할 수 있는 실전 노하우를 확인하실 수 있습니다.
REGEXEXTRACT 함수의 기본 문법과 활용법
구글 시트에서 제공하는 REGEXEXTRACT 함수는 텍스트에서 특정 패턴에 맞는 문자열을 추출하는 강력한 도구입니다. 기본 문법은 REGEXEXTRACT(텍스트, 정규표현식) 형태로 매우 간단합니다. 첫 번째 인수에는 추출 대상이 되는 원본 텍스트를 지정하고, 두 번째 인수에는 찾고자 하는 패턴을 정규표현식으로 작성합니다. 예를 들어 이메일 주소를 추출하려면 REGEXEXTRACT(A2, "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}")와 같이 작성할 수 있습니다. 이 수식은 A2 셀의 텍스트에서 이메일 형식에 맞는 문자열을 자동으로 찾아냅니다. 정규표현식에서 대괄호는 문자 집합을 의미하며, 더하기 기호는 앞의 패턴이 한 번 이상 반복됨을 나타냅니다. 점은 임의의 한 문자를 의미하지만 백슬래시와 함께 사용하면 실제 점 문자를 찾습니다. 전화번호를 추출할 때는 REGEXEXTRACT(B2, "\d{2,3}-\d{3,4}-\d{4}") 형식을 사용합니다. 여기서 \d는 숫자를 의미하고 중괄호 안의 숫자는 반복 횟수를 지정합니다. 이 패턴은 02-1234-5678이나 010-123-4567 같은 형식의 전화번호를 정확하게 추출합니다. URL에서 도메인만 추출하고 싶다면 REGEXEXTRACT(C2, "https?://([^/]+)")를 사용할 수 있습니다. 물음표는 앞의 문자가 있을 수도 있고 없을 수도 있음을 의미하므로 http와 https 모두 인식합니다. 괄호는 추출할 그룹을 지정하며, 캐럿 기호와 대괄호는 슬래시가 아닌 문자를 의미합니다. 주민등록번호나 사업자등록번호 같은 민감한 정보는 앞자리만 추출하여 마스킹 처리할 수 있습니다. REGEXEXTRACT(D2, "(\d{6})-\d{7}")는 주민등록번호의 앞 6자리만 추출합니다. 함수가 패턴을 찾지 못하면 오류가 발생하므로 IFERROR 함수와 결합하여 사용하는 것이 좋습니다. IFERROR(REGEXEXTRACT(A2, 패턴), "없음")처럼 작성하면 패턴이 없을 때 오류 대신 지정한 텍스트가 표시됩니다. 여러 개의 패턴 중 하나라도 일치하면 추출하려면 파이프 기호를 사용합니다. REGEXEXTRACT(E2, "apple|banana|orange")는 세 가지 과일 이름 중 하나를 찾아냅니다.
실무에서 자주 사용하는 정규표현식 패턴 예제
실제 업무에서 자주 마주치는 데이터 추출 상황별로 최적화된 정규표현식 패턴을 소개합니다. 고객 데이터베이스에서 우편번호를 추출해야 하는 경우가 많습니다. 한국의 5자리 우편번호는 REGEXEXTRACT(A2, "\d{5}")로 간단하게 추출할 수 있습니다. 만약 주소 전체에서 우편번호만 정확히 가져오려면 REGEXEXTRACT(A2, "(\d{5})")처럼 괄호로 그룹화하면 됩니다. 상품 코드에서 특정 부분만 추출하는 경우도 흔합니다. 예를 들어 PRD-2024-A123 형식의 코드에서 연도만 추출하려면 REGEXEXTRACT(B2, "PRD-(\d{4})-")를 사용합니다. 괄호 안의 부분만 추출되므로 2024만 결과로 나타납니다. 카테고리 코드의 마지막 부분을 가져오려면 REGEXEXTRACT(B2, "-([A-Z]\d+)$")처럼 달러 기호를 사용하여 문자열 끝을 지정합니다. 로그 파일이나 시스템 메시지에서 타임스탬프를 추출할 때는 REGEXEXTRACT(C2, "\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}")를 활용합니다. 이 패턴은 2024-03-15 14:30:45 같은 형식의 날짜와 시간을 정확하게 찾아냅니다. 만약 날짜만 필요하다면 REGEXEXTRACT(C2, "\d{4}-\d{2}-\d{2}")로 간소화할 수 있습니다. 가격 정보를 추출할 때는 통화 기호와 쉼표를 고려해야 합니다. REGEXEXTRACT(D2, "₩[\d,]+") 또는 REGEXEXTRACT(D2, "\$[\d,]+\.\d{2}")처럼 작성하면 원화나 달러 표시가 포함된 금액을 추출합니다. HTML 태그에서 특정 속성값을 가져오는 경우도 있습니다. 이미지 태그에서 src 속성값을 추출하려면 REGEXEXTRACT(E2, 'src="([^"]+)"')를 사용합니다. 따옴표로 묶인 값을 정확하게 가져올 수 있습니다. 한글 이름만 추출하고 싶다면 REGEXEXTRACT(F2, "[가-힣]{2,4}")를 사용합니다. 이 패턴은 2자에서 4자 사이의 한글 문자열을 찾습니다. 영문 이름은 REGEXEXTRACT(F2, "[A-Za-z]+ [A-Za-z]+")로 성과 이름을 함께 추출할 수 있습니다. 파일 확장자를 추출할 때는 REGEXEXTRACT(G2, "\.([a-zA-Z0-9]+)$")를 사용합니다. 파일명 끝의 점 이후 문자열을 가져오므로 jpg, pdf, xlsx 같은 확장자를 정확하게 추출합니다. 신용카드 번호의 마지막 4자리만 표시하려면 REGEXEXTRACT(H2, "\d{4}$")를 사용하면 됩니다.
고급 텍스트 처리를 위한 정규표현식 기법
복잡한 데이터 처리 상황에서는 더욱 정교한 정규표현식 기법이 필요합니다. 여러 개의 값을 동시에 추출해야 할 때는 REGEXEXTRACT 대신 REGEXREPLACE나 REGEXMATCH를 함께 활용해야 합니다. 예를 들어 하나의 셀에서 이메일과 전화번호를 모두 추출하려면 각각 별도의 수식을 작성해야 합니다. ARRAYFORMULA를 결합하면 전체 열에 대해 한 번에 정규표현식을 적용할 수 있습니다. ARRAYFORMULA(REGEXEXTRACT(A2:A100, "패턴"))처럼 작성하면 범위 내 모든 셀에서 자동으로 추출됩니다. 조건부 추출도 가능합니다. 특정 단어 뒤에 오는 숫자만 추출하려면 REGEXEXTRACT(B2, "금액:\s*(\d+)")처럼 작성합니다. \s는 공백 문자를 의미하며 별표는 공백이 0개 이상 있을 수 있음을 나타냅니다. 부정형 패턴도 유용합니다. 특정 문자를 제외한 나머지를 추출할 때는 캐럿 기호를 사용합니다. REGEXEXTRACT(C2, "[^0-9]+")는 숫자가 아닌 문자들만 추출합니다. 탐욕적 매칭과 게으른 매칭을 구분하는 것도 중요합니다. 기본적으로 정규표현식은 최대한 많은 문자를 매칭하려고 하는데, 물음표를 추가하면 최소 매칭으로 변경됩니다. REGEXEXTRACT(D2, "