desktools.run
35 명 접속 중|5.4천 회 이용
블로그 목록으로 돌아가기
Developer GuideSeptember 12, 2026

정규표현식(Regex) 핵심 문법과 실무 검증 패턴 치트시트

Official desktools.run Article

정규표현식(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)

**`*`** : 0회 이상 반복 (없거나 무한대) ➔ `ab*c` (ac, abc, abbbc)
`+` : 1회 이상 반복 (최소 1개 이상) ➔ `ab+c` (abc, abbbc / ac는 불일치)
`?` : 0회 또는 1회 (있을 수도 있고 없을 수도 있음) ➔ `https?` (http, https)
`{n}` : 정확히 n회 반복 ➔ `\d{4}` (2026)
`{n,}` : 최소 n회 이상 반복 ➔ `\w{8,}` (8글자 이상)
`{n,m}` : 최소 n회부터 최대 m회까지 반복 ➔ `\d{2,4}` (2~4자리 숫자)

📋 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)를 이용해 보세요!