Developer
정규표현식 치트시트 — Regex 빠른 참조
문법, 문자 클래스, 수량자, 앵커, 그룹, 전방탐색/후방탐색, 일반적인 패턴을 포함한 포괄적인 정규표현식 치트시트입니다.
문자 클래스
| 패턴 | 설명 | 예시 | 매치 |
|---|---|---|---|
| . | 줄 바꿈을 제외한 모든 문자 | a.c | abc, a1c, a-c |
| \d | 숫자 (0-9) | \d{3} | 123, 456 |
| \D | 숫자가 아닌 문자 | \D+ | abc, --- |
| \w | 단어 문자 (a-z, A-Z, 0-9, _) | \w+ | hello_123 |
| \W | 단어가 아닌 문자 | \W | !, @, # |
| \s | 공백 (스페이스, 탭, 줄바꿈) | a\sb | a b, a\tb |
| \S | 공백이 아닌 문자 | \S+ | hello |
| [abc] | a, b, c 중 하나 | [aeiou] | a, e, i |
| [^abc] | a, b, c가 아닌 문자 | [^aeiou] | b, c, d |
| [a-z] | 범위: a부터 z | [a-f] | a, b, c, d, e, f |
| [A-Z] | 범위: A부터 Z | [A-F] | A, B, C, D, E, F |
| [0-9] | 범위: 0부터 9 | [0-5] | 0, 1, 2, 3, 4, 5 |
수량자
| 패턴 | 설명 | 예시 | 매치 |
|---|---|---|---|
| * | 0회 이상 | ab*c | ac, abc, abbc |
| + | 1회 이상 | ab+c | abc, abbc |
| ? | 0회 또는 1회 | colou?r | color, colour |
| {n} | 정확히 n회 | \d{4} | 2024 |
| {n,} | n회 이상 | \d{2,} | 12, 123, 1234 |
| {n,m} | n회에서 m회 사이 | \d{2,4} | 12, 123, 1234 |
| *? | 0회 이상 (나태) | <.*?> | <b> in <b>bold</b> |
| +? | 1회 이상 (나태) | ".+?" | "hi" in "hi" "bye" |
앵커 & 경계
| 패턴 | 설명 | 예시 | 매치 |
|---|---|---|---|
| ^ | 문자열/줄의 시작 | ^Hello | 시작 위치의 Hello |
| $ | 문자열/줄의 끝 | world$ | 끝 위치의 world |
| \b | 단어 경계 | \bcat\b | cat (컨cat이나 cats는 안 됨) |
| \B | 단어 경계가 아닌 곳 | \Bcat | scat, concatenate |
그룹 & 참조
| 패턴 | 설명 | 예시 | 매치 |
|---|---|---|---|
| (abc) | 캡처 그룹 | (ha)+ | ha, haha, hahaha |
| (?:abc) | 비캡처 그룹 | (?:ha)+ | 위와 동일, 캡처 없음 |
| (?<name>abc) | 명명된 캡처 그룹 | (?<year>\d{4}) | 연도 캡처 |
| \1 | 그룹 1에 대한 역참조 | (\w)\1 | aa, bb, cc |
| a|b | 대안 (또는) | cat|dog | cat 또는 dog |
전방탐색 & 후방탐색
| 패턴 | 설명 | 예시 | 매치 |
|---|---|---|---|
| (?=abc) | 긍정 전방탐색 | \d(?=px) | 3px에서 3 |
| (?!abc) | 부정 전방탐색 | \d(?!px) | 3em에서 3 |
| (?<=abc) | 긍정 후방탐색 | (?<=\$)\d+ | $100에서 100 |
| (?<!abc) | 부정 후방탐색 | (?<!\$)\d+ | EUR100에서 100 |
플래그 / 수정자
| 플래그 | 설명 | 예시 |
|---|---|---|
| g | 전역 검색 (모든 일치 찾기) | /hello/g |
| i | 대소문자 무시 검색 | /hello/i는 Hello와 일치 |
| m | 다중 행 (^와 $가 행 경계와 일치) | /^start/m |
| s | Dotall (.이 줄바꿈과 일치) | /a.b/s는 a\nb와 일치 |
| u | 유니코드 지원 | /\u{1F600}/u |
| y | 스티키 (lastIndex에서 일치) | /\d/y |
일반적인 패턴
| 패턴 | 정규식 | 참고 |
|---|---|---|
| 이메일 | ^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,}$ | 기본 이메일 검증 |
| URL | https?:\/\/[\w.-]+(?:\.[\w]{2,})[\/\w.-]* | HTTP/HTTPS URL |
| IPv4 주소 | \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b | 예: 192.168.1.1 |
| 16진 색상 | #[0-9a-fA-F]{3,8} | #fff, #FF5733, #FF573380 |
| 전화번호 (미국) | \(?\d{3}\)?[-\s]?\d{3}[-\s]?\d{4} | (555) 123-4567 |
| 날짜 (YYYY-MM-DD) | \d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01]) | 2024-12-31 |
| 시간 (HH:MM) | (?:[01]\d|2[0-3]):[0-5]\d | 14:30, 09:15 |
| 사용자명 | ^[a-zA-Z][\w]{2,15}$ | 3-16자, 문자로 시작 |
| 비밀번호 (강력) | ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\w]).{8,}$ | 최소 8자, 대소문자 + 숫자 + 특수문자 |
| HTML 태그 | <\/?[a-z][\w-]*[^>]*> | <div>, </span>, <img /> |