정규식 가이드

정규표현식의 핵심 문법을 예제와 함께 익히세요.
아래 테스터로 직접 패턴을 시험해볼 수 있습니다.

인터랙티브 테스터

정규식 패턴을 입력하고 아래 텍스트에서 매칭 결과를 실시간으로 확인하세요.

/ /
테스트 텍스트
매칭 결과 (노란색 = 매칭된 부분)
빠른 예제:
매칭된 텍스트 목록
패턴을 입력하세요

정규식 치트시트

기본 문자

특수한 의미를 갖는 기본 메타문자들입니다.

패턴의미예시
.임의의 문자 하나 (줄바꿈 제외)c.t → cat, c1t, c-t
\d숫자 (0–9)\d\d → 42, 07
\D숫자가 아닌 문자\D+ → hello, 안녕
\w단어 문자 (a-z, A-Z, 0-9, _)\w+ → hello_1
\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] → 영문자
[0-9]0부터 9까지 범위[0-9]+ = \d+
[가-힣]한글 완성형 문자[가-힣]+ → 안녕
[ㄱ-ㅎ]한글 자음[ㄱ-ㅎ] → ㄱ, ㄴ, ㅎ

앵커 (위치 지정)

문자를 매칭하는 게 아니라 위치를 지정합니다.

패턴의미예시
^문자열(줄)의 시작^hello → "hello world"의 앞
$문자열(줄)의 끝world$ → "hello world"의 끝
\b단어 경계\bcat\b → cat (concatenate는 X)
\B단어 경계가 아닌 곳\Bcat\B → concatenate
💡 m 플래그를 쓰면 ^/$가 각 줄의 시작/끝에 적용됩니다.

수량자 (반복 횟수)

앞의 패턴이 몇 번 반복되는지 지정합니다. 기본은 탐욕적(greedy), 뒤에 ?를 붙이면 게으른(lazy) 매칭.

패턴의미예시
*0회 이상ab* → a, ab, abb, abbb
+1회 이상ab+ → ab, abb (a는 X)
?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~1234
*? +?게으른 매칭 (최소한으로)<.+?> → 첫 태그만 매칭

그룹과 OR

패턴을 묶거나 여러 선택지 중 하나를 매칭합니다.

패턴의미예시
(abc)캡처 그룹(ha)+ → ha, haha, hahaha
(?:abc)비캡처 그룹 (묶기만, 저장 X)(?:ab)+ → ab, abab
a|ba 또는 bcat|dog → cat 또는 dog
(a|b)c그룹 내 OR(jpg|png|gif) → 확장자 선택
\11번 캡처 그룹 역참조(\w)\1 → aa, bb (반복 문자)

Lookahead / Lookbehind

특정 패턴의 앞/뒤 조건을 확인하지만 매칭 결과에는 포함되지 않습니다.

패턴의미예시
(?=abc)앞에 abc가 오는 위치 (긍정 전방탐색)\d+(?=원) → "100원"에서 100
(?!abc)앞에 abc가 오지 않는 위치 (부정 전방탐색)\d+(?!px) → px가 아닌 숫자
(?<=abc)뒤에 abc가 있는 위치 (긍정 후방탐색)(?<=\$)\d+ → "$100"에서 100
(?<!abc)뒤에 abc가 없는 위치 (부정 후방탐색)(?<!\d)\d{3} → 단독 3자리 숫자
💡 Lookahead/Lookbehind는 위치를 검사할 뿐 소비하지 않습니다. 따라서 매칭 문자열에 포함되지 않습니다.

플래그

정규식의 동작 방식을 변경합니다. /패턴/플래그 형태로 사용.

플래그의미예시
g전역 검색 — 첫 번째 매칭에서 멈추지 않고 전부 찾기/\d+/g → 모든 숫자
i대소문자 무시/hello/i → Hello, HELLO, hello
m멀티라인 — ^/$이 각 줄의 시작/끝에 적용/^\d/m → 각 줄의 시작 숫자
sdotAll — .이 줄바꿈(\n)도 매칭/.+/s → 여러 줄도 매칭

자주 쓰는 실전 패턴

실무에서 바로 활용할 수 있는 패턴 모음입니다.

용도패턴
이메일[\w.+-]+@[\w-]+\.[a-z]{2,}
한국 휴대폰01[0-9]-\d{3,4}-\d{4}
날짜 (YYYY-MM-DD)\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])
IPv4 주소((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)
URL (http/https)https?://[\w-]+(\.[\w-]+)+(\/[^\s]*)?
한글만[가-힣]+
HTML 태그<[^>]+>
비밀번호 (대소문자+숫자+특수문자 8자+)(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}
숫자만^\d+$
앞뒤 공백 제거 (trim)^\s+|\s+$

배운 내용을 문제로 연습해보세요!

문제 풀러 가기 →