정규식 테스터

정규표현식을 테스트하고 매칭 결과를 실시간으로 확인하세요.

//

정규식 테스터는 패턴이 의도한 문자열에만 매칭되는지 실시간으로 확인해 줘요. 입력 검증·로그 파싱·검색 치환에서 매번 손이 가요.

정규식 핵심 메타문자

- `.` 임의 한 글자 (줄바꿈 제외) - `*` 0회 이상 반복 / `+` 1회 이상 / `?` 0~1회 - `^` 줄 시작 / `$` 줄 끝 - `\d` 숫자 / `\w` 단어문자 / `\s` 공백 - `[abc]` 문자 집합 / `[^abc]` 부정 - `(...)` 캡처 그룹 / `(?:...)` 비캡처 - `|` OR - `\b` 단어 경계 예시: `^010-\d{4}-\d{4}$` → 한국 핸드폰 번호 `\b\w+@\w+\.\w+\b` → 간단한 이메일 매칭

플래그(g, i, m, s, u)

- `g` 전역 검색 (모든 매치) - `i` 대소문자 무시 - `m` 멀티라인 (`^`/`$`이 각 줄에 적용) - `s` dotall (`.`이 줄바꿈도 포함) - `u` 유니코드 (이모지·한글 제대로 처리) 한글 매칭에는 `u` 플래그가 안전해요. 안 켜면 일부 한글이 제대로 안 잡혀요. 조합 예: `/\bemail\b/gi` → 단어 경계 + 전역 + 대소문자 무시

흔한 함정

- **탐욕(Greedy) vs 비탐욕(Lazy)**: `.*`는 가능한 한 길게 매치. `.*?`로 최단 매치. HTML 파싱·따옴표 안 추출에서 자주 실수 - **이메일·URL 정규식 신뢰성**: 표준 100% 매치는 매우 길고 복잡. 실전에서는 라이브러리(`validator.js`) 추천 - **백트래킹 폭발**: `(a+)+` 같은 중첩 반복은 입력에 따라 ReDoS 공격 가능. 테스트 필수 - **이스케이프**: `.` `?` `*` `+` `(` `)` `[` `\` 같은 메타는 `\.` 처럼 escape - **한글 범위**: `[가-힣]`이 한글 음절 범위, `[ㄱ-ㅎㅏ-ㅣ]`은 자모 분리

자주 묻는 질문

JavaScript regex와 Python regex가 다른가요?

기본 문법은 비슷하지만 미묘한 차이가 있어요. JS는 lookbehind를 ES2018부터 지원, Python은 더 풍부한 기능. PCRE(Perl 호환)가 가장 풍부.

정규식 성능을 어떻게 측정해요?

여러 입력 길이에서 매칭 시간 측정. 100k자 이상에서 갑자기 느려지면 backtracking 의심. regex101이 step count로 알려줘요.

이메일 정규식 어디서 가져와요?

RFC 5322 완전 매치는 너무 길어서 비실용. HTML5 spec의 단순 패턴 또는 라이브러리(`validator.js`) 사용 추천.