정규식 치트시트
7개 카테고리 42개 패턴의 포괄적인 정규 표현식 빠른 참조. 검색하고 클릭하여 복사.
문자 클래스
패턴
설명
예시
.
줄바꿈을 제외한 모든 문자
a.c는 "abc", "a1c"와 매치
\d
숫자 (0-9)
\d{3}는 "123"과 매치
\D
숫자가 아닌 문자
\D+는 "abc"와 매치
\w
단어 문자 (a-z, A-Z, 0-9, _)
\w+는 "hello_123"과 매치
\W
단어 문자가 아닌 문자
\W는 "@", " "와 매치
\s
공백 문자 (스페이스, 탭, 줄바꿈)
a\sb는 "a b"와 매치
\S
공백이 아닌 문자
\S+는 "hello"와 매치
[abc]
a, b, c 중 하나
[aeiou]는 모음과 매치
[^abc]
a, b, c가 아닌 문자
[^0-9]는 숫자가 아닌 문자와 매치
[a-z]
범위: a부터 z까지
[a-zA-Z]는 모든 문자와 매치
앵커
패턴
설명
예시
^
문자열/줄의 시작
^Hello는 "Hello world"와 매치
$
문자열/줄의 끝
world$는 "Hello world"와 매치
\b
단어 경계
\bcat\b는 "cat"과 매치, "catch"는 아님
\B
비단어 경계
\Bcat\B는 "concatenate"와 매치
수량자
패턴
설명
예시
*
0번 이상
ab*c는 "ac", "abc", "abbc"와 매치
+
1번 이상
ab+c는 "abc", "abbc"와 매치, "ac"는 아님
?
0번 또는 1번 (선택)
colou?r는 "color", "colour"와 매치
{n}
정확히 n번
\d{4}는 "2024"와 매치
{n,}
n번 이상
\d{2,}는 "12", "123"과 매치
{n,m}
n번 이상 m번 이하
\d{2,4}는 "12", "1234"와 매치
*?
0번 이상 (게으른)
<.*?>는 첫 번째 태그만 매치
+?
1번 이상 (게으른)
.+?는 가능한 적게 매치
그룹과 참조
패턴
설명
예시
(abc)
캡처 그룹
(\d+)-(\d+)는 두 부분을 캡처
(?:abc)
비캡처 그룹
(?:ab)+는 "abab"와 매치
(?<name>abc)
이름 있는 캡처 그룹
(?<year>\d{4})는 "year"로 캡처
\1
그룹 1에 대한 역참조
(\w+)\s\1는 "the the"와 매치
(a|b)
선택 (a 또는 b)
(cat|dog)는 둘 중 하나와 매치
전방탐색/후방탐색
패턴
설명
예시
(?=abc)
긍정 전방탐색
\d(?=px)는 "5px"의 "5"와 매치
(?!abc)
부정 전방탐색
\d(?!px)는 "5em"의 "5"와 매치
(?<=abc)
긍정 후방탐색
(?<=\$)\d+는 "$100"의 "100"과 매치
(?<!abc)
부정 후방탐색
(?<!\$)\d+는 "100"의 "100"과 매치
플래그
패턴
설명
예시
g
전역 - 모든 일치 항목 검색
/cat/g는 모든 "cat" 인스턴스와 매치
i
대소문자 구분 없는 매칭
/hello/i는 "Hello", "HELLO"와 매치
m
다중 줄 - ^와 $가 줄 시작/끝과 매치
/^line/m는 각 줄 시작과 매치
s
Dotall - .이 줄바꿈과도 매치
/a.b/s는 "a\nb"와 매치
u
유니코드 지원
/\p{L}/u는 유니코드 문자와 매치
자주 쓰는 패턴
패턴
설명
예시
^[\w.-]+@[\w.-]+\.\w{2,}$
이메일 (기본)
user@example.com
^https?://[\w.-]+(?:/[\w.-]*)*$
URL (기본)
https://example.com/path
^\d{1,3}(\.\d{1,3}){3}$
IPv4 주소
192.168.1.1
^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
16진수 색상
#ff6600 또는 #f60
^\d{4}-\d{2}-\d{2}$
날짜 (YYYY-MM-DD)
2024-01-15
^\+?\d{1,3}[-.\s]?\d{4,14}$
전화번호 (기본)
+1-555-1234567
정규식 치트시트 사용 방법
- 1.카테고리를 탐색하거나 검색 바를 사용하여 특정 패턴, 설명 또는 예시를 찾습니다.
- 2.카테고리 버튼을 클릭하여 주제별로 필터링 (문자 클래스, 수량자, 전방탐색/후방탐색 등).
- 3.아무 행이나 클릭하여 패턴을 복사합니다.
- 4.자주 쓰는 패턴 섹션에서 이메일, URL, 날짜 등 바로 사용할 수 있는 정규식을 활용합니다.
자주 묻는 질문
정규 표현식(regex)이란?
정규 표현식은 검색 패턴을 정의하는 문자 시퀀스입니다. 문자열에서 패턴 매칭(텍스트 찾기, 바꾸기, 검증)에 사용됩니다. 거의 모든 프로그래밍 언어와 텍스트 편집기에서 정규식을 지원합니다.
탐욕적 수량자와 게으른 수량자의 차이점은?
탐욕적 수량자(*, +, {n,m})는 가능한 많은 텍스트와 매치합니다. 게으른 수량자(*?, +?, {n,m}?)는 가능한 적게 매치합니다. 예를 들어 "<b>bold</b>"에서 <.*>(탐욕적)는 전체 문자열과 매치하고, <.*?>(게으른)는 "<b>"만 매치합니다.
전방탐색과 후방탐색이란?
전방탐색(?=...)과 후방탐색(?<=...)은 제로 너비 어설션입니다. 패턴의 존재를 확인하지만 매치에 포함하지 않습니다. 긍정 변형은 패턴이 존재한다고 주장하고, 부정 변형(?!...)과 (?<!...)은 패턴이 존재하지 않는다고 주장합니다.
정규식 패턴을 어떻게 테스트하나요?
정규식 테스터 도구(/regex-tester)에서 실시간 매칭과 하이라이팅으로 패턴을 테스트할 수 있습니다. regex101.com 같은 온라인 도구도 각 패턴 구성 요소의 상세한 설명을 제공합니다.