정규표현식(Regex) 핵심 문법과 실무 검증 패턴 치트시트
정규표현식(Regular Expressions, Regex)은 텍스트에서 특정한 규칙이나 패턴을 검색, 추출, 치환 및 검증(Validation)하기 위한 가장 강력한 도구입니다.
JavaScript, Python, Java, Go 등 거의 모든 프로그래밍 언어에서 기본으로 지원하지만, 특수문자와 수량자가 얽힌 복잡한 문법 때문에 매번 검색에 의존하기 쉽습니다.
본 치트시트에서는 정규식의 기본 메타문자부터 실무에서 즉시 활용 가능한 실전 검증 패턴까지 알기 쉽게 정리해 드립니다.
🔠 1. 기본 메타문자 & 문자 클래스
| 기호 | 설명 | 예시 및 매칭 결과 | | :---: | :--- | :--- | | `.` | 줄바꿈을 제외한 임의의 한 문자 | `a.c` ➔ `abc`, `a1c` 매칭 | | `^` | 문자열의 시작 지점 | `^Hello` ➔ "Hello World" 시작 부분 매칭 | | `$` | 문자열의 끝 지점 | `world$` ➔ "Hello world" 끝 부분 매칭 | | `\d` | 모든 숫자 (`[0-9]`와 동일) | `\d{3}` ➔ "123" 매칭 | | `\D` | 숫자가 아닌 모든 문자 (`[^0-9]`) | `\D` ➔ "A", "!" 매칭 | | `\w` | 알파벳, 숫자, 밑줄 `_` (`[a-zA-Z0-9_]`) | 단어 구성 문자 매칭 | | `\s` | 공백 문자 (스페이스, 탭, 줄바꿈) | `\s+` ➔ 연속된 공백 매칭 | | `[abc]`| 나열된 문자 중 하나 | `[aeiou]` ➔ 모음 한 글자 매칭 | | `[^abc]`| 나열된 문자를 제외한 모든 문자 | `[^0-9]` ➔ 숫자가 아닌 문자 |
🔢 2. 수량자 (Quantifiers)
📋 3. 실무 필수 검증 정규식 패턴 모음
프로젝트 프론트엔드/백엔드 폼 유효성 검사에 즉시 복사하여 쓸 수 있는 정규식입니다:
### 1) 이메일 주소 유효성 검사 (RFC 5322 간소화) ```regex ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ ```
### 2) 한국 휴대폰 번호 (010-XXXX-XXXX 또는 하이픈 없는 형태) ```regex ^01(?:0|1|[6-9])-(?:\d{3}|\d{4})-\d{4}$ ```
### 3) 강력한 비밀번호 규칙 (영문 대소문자 + 숫자 + 특수문자 포함 8자 이상) ```regex ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$ ``` > 해설: 전방 탐색(`(?=...)`)을 사용하여 대문자, 소문자, 숫자, 특수문자가 각각 최소 1개 이상 포함되었는지 검증합니다.
### 4) 웹 URL 주소 (HTTP/HTTPS 포함) ```regex ^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$ ```
### 5) 주민등록번호 / 주민번호 앞자리 생년월일 (YYMMDD) ```regex ^\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])$ ```
실시간으로 정규식 패턴을 테스트하고 캡처 그룹을 시각화하려면 desktools.run의 [Regex Tester](file:///tools/regex-tester)를 이용해 보세요!