정규식 치트시트
정규식(regex)은 텍스트를 매칭하는 패턴입니다 — 검색·치환, 검증, 추출에 쓰입니다. 아래 문법은 JavaScript·Python·PCRE 등 대부분의 현대 엔진이 공유하는 공통 형식입니다. 토큰을 검색해 바로 이동하세요.
업데이트 2026-07-06
문자 클래스
| 토큰 | 매칭 대상 | 예시 |
|---|---|---|
| . | 줄바꿈을 제외한 모든 문자 | a.c → abc, a7c |
| \d | 임의의 숫자(0–9) | \d\d → 42 |
| \D | 숫자가 아닌 모든 문자 | \D → a, % |
| \w | 단어 문자(글자, 숫자, 밑줄) | \w+ → hello_1 |
| \W | 단어가 아닌 문자 | \W → space, ! |
| \s | 공백(스페이스, 탭, 줄바꿈) | a\sb → a b |
| \S | 공백이 아닌 문자 | \S+ → word |
| [abc] | a, b, c 중 하나 | [aeiou] → a vowel |
| [^abc] | a, b, c를 제외한 모든 문자 | [^0-9] → non-digit |
| [a-z] | 범위 내의 모든 문자 | [a-f] → a…f |
앵커 & 경계
| 토큰 | 매칭 대상 | 예시 |
|---|---|---|
| ^ | 문자열 시작(멀티라인 모드에서는 줄 시작) | ^Hi → line starting Hi |
| $ | 문자열 끝(또는 줄 끝) | end$ → line ending end |
| \b | 단어 경계 | \bcat\b → the word cat |
| \B | 단어 경계가 아닌 곳 | \Bcat → scatter |
수량자
| 토큰 | 매칭 대상 | 예시 |
|---|---|---|
| * | 앞 요소가 0회 이상 | a* → '', a, aaa |
| + | 1회 이상 | a+ → a, aaa (not '') |
| ? | 0회 또는 1회(선택) | colou?r → color, colour |
| {n} | 정확히 n회 | \d{4} → 2026 |
| {n,} | n회 이상 | \d{2,} → 42, 4200 |
| {n,m} | n회에서 m회 사이 | \d{2,4} → 42 to 4200 |
| *? | 게으른 매칭: 가능한 한 적게 | <.+?> → shortest match |
그룹, 대안, 룩어라운드
| 토큰 | 매칭 대상 | 예시 |
|---|---|---|
| (abc) | 캡처 그룹 | (ab)+ → abab |
| (?:abc) | 비캡처 그룹 | (?:ab)+ → group, no capture |
| (?<name>…) | 이름 있는 캡처 그룹 | (?<year>\d{4}) |
| a|b | 대안 — a 또는 b | cat|dog → cat, dog |
| \1 | 그룹 1 역참조 | (\w)\1 → ll, oo |
| (?=abc) | 룩어헤드 — 뒤에 abc가 옴 | \d(?=px) → 5 in 5px |
| (?!abc) | 부정 룩어헤드 — 뒤에 오지 않음 | \d(?!px) |
| (?<=abc) | 룩비하인드 — 앞에 abc가 옴 | (?<=\$)\d+ → 9 in $9 |
| (?<!abc) | 부정 룩비하인드 | (?<!\$)\d+ |
플래그
| 토큰 | 매칭 대상 | 예시 |
|---|---|---|
| g | 전역 — 첫 번째만이 아니라 모든 매칭 찾기 | /a/g |
| i | 대소문자 무시 | /abc/i → ABC |
| m | 멀티라인 — ^와 $가 줄바꿈에 매칭 | /^x/m |
| s | 닷올(dotall) — .이 줄바꿈에도 매칭 | /a.b/s |
| u | 유니코드 모드 | /\u{1F600}/u |
이스케이프에 관한 메모
특수한 의미를 가진 문자 — . * + ? ( ) [ ] { } ^ $ | \ 같은 — 를 매칭하려면 앞에 백슬래시를 붙이세요. 예를 들어 \. 는 리터럴 점을, \$ 는 리터럴 달러 기호를 매칭합니다. 패턴이 예상대로 매칭되지 않으면 이스케이프하지 않은 특수 문자가 대개 원인입니다.
관련 도구