정규식 치트시트
마지막 업데이트
문자 클래스
집합에서 단일 문자를 일치시킵니다.
| 토큰 | 일치 대상 |
|---|---|
. | 줄바꿈을 제외한 모든 문자 |
\d | 모든 숫자 (0-9) |
\D | 숫자가 아닌 모든 문자 |
\w | 단어 문자 (문자, 숫자, 밑줄) |
\W | 단어 문자가 아닌 모든 문자 |
\s | 모든 공백 (스페이스, 탭, 줄바꿈) |
[abc] | a, b, c 중 하나 |
[a-z] | 해당 범위의 소문자 하나 |
[^abc] | a, b, c를 제외한 모든 문자 |
수량자
앞의 토큰이 몇 번 반복되는지 지정합니다.
| 토큰 | 일치 대상 |
|---|---|
* | 0개 이상 |
+ | 1개 이상 |
? | 0개 또는 1개 (선택적) |
{3} | 정확히 3번 |
{2,4} | 2번에서 4번 사이 |
{2,} | 2번 이상 |
*? | 게으른(lazy): 가능한 한 적게 |
+? | 게으른(lazy): 1개 이상, 최소한 |
앵커 및 경계
문자가 아니라 위치를 일치시킵니다.
| 토큰 | 일치 대상 |
|---|---|
^ | 문자열(또는 줄)의 시작 |
$ | 문자열(또는 줄)의 끝 |
\b | 단어 경계 |
\B | 단어 경계가 아닌 위치 |
^abc$ | 정확히 abc인 문자열 |
\bword\b | 온전한 단어로서의 word |
그룹 및 캡처
토큰을 묶고 일치한 내용을 캡처합니다.
| 토큰 | 일치 대상 |
|---|---|
(abc) | 캡처 그룹, 그룹 1로 저장됨 |
(?:abc) | 캡처하지 않는 그룹 |
(?<year>\d{4}) | 이름 있는 캡처 그룹 year |
(ab)+ | 그룹 전체를 반복 |
\1 | 그룹 1에 대한 역참조 |
\k<year> | 이름 있는 그룹에 대한 역참조 |
대안 (Alternation)
어느 한 패턴 또는 다른 패턴을 일치시킵니다.
| 토큰 | 일치 대상 |
|---|---|
a|b | a 또는 b |
cat|dog | 단어 cat 또는 dog |
(jpg|png|gif) | 여러 대안 중 하나, 캡처됨 |
gr(a|e)y | gray 또는 grey |
^(yes|no)$ | 정확히 yes 또는 정확히 no |
룩어라운드
소비하지 않고 앞이나 뒤에 무엇이 오는지 단언합니다.
| 토큰 | 일치 대상 |
|---|---|
(?=abc) | 전방 탐색: 뒤에 abc가 옴 |
(?!abc) | 부정 전방 탐색: 뒤에 abc가 오지 않음 |
(?<=abc) | 후방 탐색: 앞에 abc가 있음 |
(?<!abc) | 부정 후방 탐색: 앞에 abc가 없음 |
\d+(?= dollars) | 뒤에 dollars가 올 때만 숫자 |
(?<=\$)\d+ | 앞에 $가 있을 때만 숫자 |
플래그
패턴 전체가 적용되는 방식을 바꿉니다.
| 플래그 | 기능 |
|---|---|
g | 전역: 첫 번째뿐 아니라 모든 일치를 찾음 |
i | 대소문자 구분 없는 일치 |
m | 다중행: ^와 $가 줄의 끝과 일치 |
s | dotall: .이 줄바꿈도 일치 |
u | 유니코드 모드 |
x | 확장: 패턴 안의 공백을 무시 |
자주 쓰는 패턴
일상적인 검증에 바로 응용할 수 있는 패턴.
| 패턴 | 일치 대상 |
|---|---|
^\d+$ | 정수 (숫자만) |
^[\w.+-]+@[\w-]+\.[\w.-]+$ | 기본 이메일 주소 |
https?:\/\/[^\s]+ | http 또는 https URL |
^\d{4}-\d{2}-\d{2}$ | 2026-05-27 같은 날짜 |
^\d{3}-\d{3}-\d{4}$ | 미국 전화번호 |
^#?[0-9a-fA-F]{6}$ | 6자리 16진수 색상 |
\s+ | 하나 이상의 공백 문자 |
자주 쓰는 모든 정규식 토큰을 한 페이지에 담았습니다. 이 정규식 치트시트는 정규 표현식을 작성하기 위한 빠른 참조 자료입니다 - 문자 클래스, 수량자, 앵커, 그룹, 대안(alternation), 룩어라운드, 플래그를 다룹니다.
여기 나오는 문법은 대부분의 언어가 사용하는 일반적인 PCRE / JavaScript 방식을 따릅니다. 패턴을 복사하거나, 정규식 테스터 도구에서 바로 시험해 정확히 무엇이 일치하는지 확인해 보세요. JS 플레이그라운드도 클릭 한 번 거리에 있습니다.
정규식 치트시트 자주 묻는 질문
이 정규식 치트시트는 무료인가요?
네. 이 정규식 치트시트는 완전히 무료이며 회원 가입이 필요 없습니다. 즐겨찾기에 추가해 두고 토큰, 수량자, 플래그를 찾아봐야 할 때마다 다시 방문하세요.
탐욕적(greedy) 수량자와 게으른(lazy) 수량자의 차이는 무엇인가요?
*와 + 같은 탐욕적 수량자는 가능한 한 많이 일치시킨 다음, 나머지 패턴에 필요하면 문자를 되돌려줍니다. ?를 붙여 작성하는 게으른 수량자(예: *?나 +?)는 가능한 한 적게 일치시키고 강제될 때만 확장합니다. 예를 들어 <a><b>에서 <.+> 패턴은 탐욕적으로 문자열 전체를 일치시키지만, <.+?>는 <a>만 일치시킵니다.정규식에서 캡처 그룹이란 무엇인가요?
(\d{4})처럼 소괄호로 감싼 패턴의 일부로, 일치한 텍스트가 저장되고 번호가 매겨져 재사용하거나 추출할 수 있습니다. 나중에 \1 같은 역참조로 참조하거나, 명확성을 위해 (?<year>\d{4})로 이름을 붙일 수 있습니다. 캡처하지 않고 토큰을 묶고 싶다면 캡처하지 않는 그룹 (?:...)을 사용하세요.정규식을 온라인에서 연습할 수 있나요?
이 치트시트는 초보자에게 적합한가요?
네. 문자 클래스와 수량자(기초)부터 룩어라운드와 바로 쓰는 패턴까지 순서대로 정리되어 있어, 간단한 텍스트 일치를 바로 시작하고 점차 고급 표현식으로 넓혀갈 수 있습니다.