정규식 치트시트
기본 메타문자
| 패턴 | 설명 | 예시 | 매치 | 복사 |
|---|---|---|---|---|
| . | 줄바꿈 제외 아무 문자 1개 | a.c | "abc", "a1c", "a c" | |
| \d | 숫자 [0-9] | \d{3} | "123", "456" | |
| \D | 숫자가 아닌 문자 | \D+ | "abc", "!@#" | |
| \w | 단어 문자 [a-zA-Z0-9_] | \w+ | "hello", "var_1" | |
| \W | 단어 문자가 아닌 것 | \W | "!", " ", "@" | |
| \s | 공백 문자 (스페이스, 탭, 줄바꿈) | a\sb | "a b", "a\tb" | |
| \S | 공백이 아닌 문자 | \S+ | "hello", "123" | |
| \b | 단어 경계 | \bcat\b | "cat" (caterpillar 제외) | |
| \B | 단어 경계가 아닌 위치 | \Bcat\B | "concatenate" 내부의 cat | |
| \n | 줄바꿈 문자 | line1\nline2 | 줄바꿈으로 구분된 텍스트 |
문자 클래스
| 패턴 | 설명 | 예시 | 매치 | 복사 |
|---|---|---|---|---|
| [abc] | a, b, c 중 하나 | [aeiou] | 모음 1개 | |
| [^abc] | a, b, c가 아닌 문자 | [^0-9] | 숫자가 아닌 문자 | |
| [a-z] | a부터 z 범위 | [a-zA-Z] | 영문자 1개 | |
| [0-9] | 0부터 9까지 | [0-9]+ | "123", "42" | |
| [\uAC00-\uD7AF] | 한글 완성형 범위 | [\uAC00-\uD7AF]+ | 한글 문자열 | |
| [\u3130-\u318F] | 한글 자음/모음 | [\u3130-\u318F]+ | ㄱㄴㄷ, ㅏㅓㅗ | |
| [a-zA-Z0-9_] | \w와 동일 | [a-zA-Z0-9_]+ | "hello_123" |
수량자
| 패턴 | 설명 | 예시 | 매치 | 복사 |
|---|---|---|---|---|
| * | 0개 이상 반복 | ab*c | "ac", "abc", "abbc" | |
| + | 1개 이상 반복 | ab+c | "abc", "abbc" (ac 제외) | |
| ? | 0개 또는 1개 | colou?r | "color", "colour" | |
| {n} | 정확히 n개 반복 | \d{4} | "2026", "1234" | |
| {n,} | n개 이상 반복 | \d{2,} | "12", "123", "1234" | |
| {n,m} | n개 이상 m개 이하 반복 | \d{2,4} | "12", "123", "1234" | |
| *? | 0개 이상 (게으른 매칭) | <.*?> | "<a>" ("<a>b</a>" 전체가 아닌) | |
| +? | 1개 이상 (게으른 매칭) | \w+? | 첫 단어 문자 1개만 | |
| {n,m}? | n~m개 (게으른 매칭) | \d{2,4}? | 가능한 적은 숫자만 매칭 |
그룹 & 캡처
| 패턴 | 설명 | 예시 | 매치 | 복사 |
|---|---|---|---|---|
| (abc) | 그룹으로 묶고 캡처 | (\d+)-(\d+) | "123-456" → 그룹1: 123, 그룹2: 456 | |
| (?:abc) | 그룹으로 묶되 캡처하지 않음 | (?:ab)+ | "ababab" | |
| (?<name>abc) | 이름 있는 캡처 그룹 | (?<year>\d{4}) | 그룹 year: "2026" | |
| \1 | 첫 번째 캡처 그룹 역참조 | (\w+)\s\1 | "hello hello" | |
| (a|b) | a 또는 b | (cat|dog) | "cat" 또는 "dog" | |
| (?<name>)\k<name> | 명명된 그룹 역참조 | (?<word>\w+)\s\k<word> | "hello hello" | |
| (?>abc) | 백트래킹 없는 그룹 (일부 엔진) | (?>a|ab)c | "ac" (abc 제외) |
앵커
| 패턴 | 설명 | 예시 | 매치 | 복사 |
|---|---|---|---|---|
| ^ | 문자열/줄 시작 | ^Hello | "Hello world" (줄 시작) | |
| $ | 문자열/줄 끝 | world$ | "Hello world" (줄 끝) | |
| \A | 문자열의 절대 시작 | \AHello | 문자열 맨 처음의 Hello | |
| \Z | 문자열의 절대 끝 | end\Z | 문자열 맨 마지막의 end | |
| \b | 단어와 비단어 사이 경계 | \bword\b | 독립된 "word"만 | |
| \B | 단어 경계가 아닌 위치 | \Bword | "sword" 내부의 word | |
| ^...$ | 문자열 전체가 패턴과 일치 | ^\d{3}$ | 정확히 3자리 숫자 |
플래그
| 패턴 | 설명 | 예시 | 매치 | 복사 |
|---|---|---|---|---|
| g | 모든 매치 찾기 | /a/g | "aaa" → 3개 매치 | |
| i | 대소문자 구분 안 함 | /hello/i | "Hello", "HELLO" | |
| m | ^$가 줄 단위로 동작 | /^abc/m | 각 줄의 시작 abc | |
| s | .이 줄바꿈 문자도 매칭 | /a.b/s | "a\nb" | |
| u | 유니코드 모드 | /\u{1F600}/u | 이모지 매칭 | |
| y | lastIndex 위치에서만 매칭 | /\d/y | 지정된 위치의 숫자 | |
| d | 매치 인덱스 정보 포함 | /a/d | 매치 시작/끝 인덱스 |
룩어라운드
| 패턴 | 설명 | 예시 | 매치 | 복사 |
|---|---|---|---|---|
| (?=abc) | abc가 뒤에 오는 위치 | \d(?=px) | "3" in "3px" | |
| (?!abc) | abc가 뒤에 오지 않는 위치 | \d(?!px) | "3" in "3em" | |
| (?<=abc) | abc가 앞에 오는 위치 | (?<=\$)\d+ | "100" in "$100" | |
| (?<!abc) | abc가 앞에 오지 않는 위치 | (?<!\$)\d+ | $ 뒤가 아닌 숫자 | |
| (?=.*abc) | 문자열에 abc가 포함되어 있는지 | ^(?=.*\d)(?=.*[a-z]) | 숫자+소문자 포함 문자열 | |
| (?<=\d)(?=\D) | 숫자와 비숫자 사이 | (?<=\d)(?=\D) | "a1b" → 1과 b 사이 | |
| (?!.*abc) | abc가 포함되지 않은 문자열 | ^(?!.*error) | error가 없는 줄 |
특수 패턴
| 패턴 | 설명 | 예시 | 매치 | 복사 |
|---|---|---|---|---|
| \t | 탭 문자 | \t+ | 탭 문자 1개 이상 | |
| \r\n | Windows 줄바꿈 | \r\n | Windows 스타일 줄바꿈 | |
| \0 | 널(null) 문자 | \0 | NULL 바이트 | |
| \xHH | 16진수로 지정한 문자 | \x41 | "A" (0x41) | |
| \uHHHH | 유니코드 코드 포인트 | \uAC00 | "가" | |
| \p{L} | 유니코드 Letter 카테고리 (u 플래그 필요) | \p{L}+ | 모든 언어의 문자 | |
| \P{N} | 유니코드 Number가 아닌 문자 (u 플래그 필요) | \P{N}+ | 숫자가 아닌 유니코드 문자 | |
| [\s\S] | 줄바꿈 포함 모든 문자 (s 플래그 대체) | [\s\S]+ | 줄바꿈 포함 전체 텍스트 |
최종 업데이트: 2026년 · 무료 온라인 도구
정규식 치트시트란?
정규표현식 문법을 카테고리별로 정리한 검색 가능한 참조표
사용 방법
- 1 카테고리 선택 — 메타문자, 수량자 등 원하는 카테고리를 선택하세요.
- 2 검색 — 검색창에 패턴이나 설명을 입력하여 필터링하세요.
- 3 패턴 복사 — 필요한 패턴의 복사 버튼을 클릭하세요.
관련 도구
자주 묻는 질문
메타문자, 수량자, 그룹/캡처, 앵커, 문자 클래스, 플래그, 룩어라운드 총 7개 카테고리입니다.
패턴, 설명, 예시를 기준으로 실시간 검색할 수 있습니다.
네, 각 패턴 옆의 복사 버튼을 클릭하면 클립보드에 복사됩니다.
네, JavaScript(ECMAScript) 정규식 문법을 기준으로 작성되었습니다.
아니요. 모든 데이터가 정적으로 포함되어 오프라인에서도 사용 가능합니다.