도구상자FREE ONLINE TOOLS
← 가이드 목록

정규식 입문 — 기초 문법과 자주 쓰는 패턴

로그에서 이메일만 뽑아내기, 전화번호 형식 검사하기, 에디터에서 한 번에 바꾸기… 문자열을 다루는 일은 결국 정규식(정규표현식)으로 통합니다. 외계어처럼 보이지만 실제로 쓰는 기호는 십여 개뿐입니다. 이 글에서 그 핵심만 예시와 함께 익혀 봅니다.

정규식이란?

정규식은 문자열의 패턴을 표현하는 작은 검색 언어입니다. 예를 들어 \d{3}-\d{4}는 "숫자 3개, 하이픈, 숫자 4개"라는 뜻으로 010-1234 같은 문자열에 매칭됩니다. JavaScript·Python·Java 등 거의 모든 언어와 VS Code 같은 에디터의 찾기/바꾸기에서 같은 문법이 통합니다.

정규식 테스터패턴을 입력하면 매칭 결과를 실시간으로 확인 테스트하기 →

꼭 아는 메타문자 10개

기호의미예시
.아무 문자 1개a.c → abc, a1c
\d숫자 (0–9)\d\d → 42
\w글자·숫자·_\w+ → hello_1
\s공백(스페이스·탭·줄바꿈)a\sb → "a b"
[abc]a, b, c 중 1개[aeiou] → 모음
[^abc]a, b, c가 아닌 1개[^0-9] → 숫자 제외
^문자열의 시작^http
$문자열의 끝\.jpg$
|또는(OR)jpg|png
( )그룹 묶기·캡처(ab)+ → abab
주의: . + * ? ( ) 같은 기호를 문자 그대로 찾으려면 앞에 \를 붙입니다. 확장자 .jpg를 찾는 패턴은 \.jpg입니다.

수량자 — 몇 번 반복되나

  • * — 0번 이상 (없어도 됨)
  • + — 1번 이상 (최소 1개)
  • ? — 0번 또는 1번 (있어도 없어도)
  • {3} — 정확히 3번, {2,4} — 2~4번, {2,} — 2번 이상

예: \d{2,3}-\d{3,4}-\d{4}는 02-123-4567, 010-1234-5678 모두에 매칭됩니다.

바로 쓰는 실무 패턴 모음

용도패턴
휴대폰 번호01[016789]-?\d{3,4}-?\d{4}
이메일(간단 검사)^[\w.-]+@[\w-]+\.[\w.]+$
숫자만 추출\d+
한글만[가-힣]+
URLhttps?://[^\s]+
날짜(YYYY-MM-DD)\d{4}-\d{2}-\d{2}
앞뒤 공백^\s+|\s+$

패턴이 생각대로 안 맞으면 정규식 테스터에 샘플 텍스트를 넣고 한 글자씩 고쳐 가며 확인하는 것이 가장 빠릅니다.

자주 묻는 질문
Q. 정규식이란 무엇인가요?

정규식(정규표현식, Regular Expression)은 문자열에서 특정 패턴을 찾기 위한 검색 언어입니다. 예를 들어 \d{3}-\d{4}는 '숫자 3개-숫자 4개' 패턴을 뜻해 전화번호 뒷자리를 찾을 수 있습니다. 거의 모든 프로그래밍 언어와 에디터(VS Code, 엑셀 일부 기능 등)에서 같은 문법으로 동작합니다.

Q. 정규식에서 .(점)이나 +가 그대로 검색되지 않는 이유는 뭔가요?

.(점), +, *, ?, (, ) 같은 문자는 정규식에서 특별한 의미를 가진 메타문자이기 때문입니다. 문자 그대로 찾으려면 앞에 역슬래시(\)를 붙여 \. \+ 처럼 이스케이프해야 합니다. 예를 들어 파일 확장자 .jpg를 찾으려면 \.jpg로 써야 합니다.

Q. 이메일 검사 정규식은 어떻게 쓰나요?

실무에서는 ^[\w.-]+@[\w-]+\.[\w.]+$ 정도의 간단한 패턴으로 형식만 확인하는 것이 일반적입니다. 이메일 규격(RFC)을 완벽히 검사하는 정규식은 매우 길고 복잡해서 오히려 유지보수가 어렵습니다. 형식 검사는 간단한 패턴으로 하고, 실제 존재 여부는 인증 메일로 확인하는 방식을 권장합니다.

함께 보면 좋은 가이드