정규식 테스터
실시간 매치 & 캡처 그룹
JavaScript 정규식을 실시간 매치 하이라이트, 캡처 그룹, g, i, m 플래그 제어와 함께 테스트합니다.
이 변환은 브라우저에서만 실행됩니다. 서버로 업로드하지 않습니다.
플래그
- 매치—
- 플래그g
- 테스트 문자열0
테스트 문자열
출력
출력...
이 도구는 무엇인가요?
브라우저에서 JavaScript 정규식 패턴을 컴파일해 테스트 문자열에 적용하고, 실시간 매치 하이라이트, 매치 수, 캡처 그룹을 보여 줍니다. 패턴 양옆 / 없이 g·i·m 플래그를 토글합니다.
동작은 브라우저 ECMAScript RegExp 기준이며 PCRE·Python·Java·.NET·RE2와 다를 수 있습니다. 검증·로그 추출·파일명 규칙을 코드에 넣기 전에 확인하세요.
자주 쓰는 경우
- 폼 검증 패턴이 샘플을 통과·거부하는 이유 디버깅
- 짧은 로그에서 ID·key=value 캡처
- 같은 텍스트에서 탐욕
.*vs lazy.*?, 멀티라인^/$비교
사용 방법
/…/없이 패턴을 입력합니다 (예:\d+,(\w+)=(\S+)).g(전체)·i(대소문자 무시)·m(줄 단위^/$)를 켭니다.- 테스트 문자열을 붙이면 매치가 하이라이트되고, 캡처가 있으면 아래에 목록이 납니다.
- Sample은 멀티라인 key=value 예제, Copy는 매치/캡처 요약, Clear는 초기화입니다.
예시
| 패턴 / 플래그 | 테스트 문자열 | 결과 |
|---|---|---|
\d+ · g | Order 123 and 456 | 매치 2개: 123, 456 |
user-(\d+) | user-42 | 매치 user-42; 캡처 42 |
^id=.*$ · m | user=a / id=42 (두 줄) | id=42 줄만 매치 (m으로 줄 ^/$) |
<(.+)> vs <(.+?)> · g | <a>x</a><b>y</b> | 탐욕은 넓게, lazy는 짧은 태그 구간 (탐욕 대비 엣지) |
[ (깨짐) | 아무 텍스트 | Invalid regex 오류 |
실무에서 흔한 실수
- 엔진 차이: Python/
re·PCRE용 패턴은 JS에서 실패하거나 다르게 동작할 수 있습니다. - 기본은 탐욕:
.*가 의도한 경계를 넘습니다. lazy나 더 좁은 문자 클래스를 쓰세요. - ReDoS·긴 입력: 중첩 수량자 + 대용량 붙여넣기는 탭을 멈출 수 있습니다. 디버깅 중에는 짧은 샘플만 사용하세요.
참고자료
최종 검토: 2026-07-27
자주 묻는 질문
- 어떤 정규식 엔진을 쓰나요?
- 브라우저의 JavaScript RegExp입니다. lookbehind·유니코드 속성·백트래킹은 ECMAScript 기준이며 PCRE·Python·Java·.NET·RE2와 다를 수 있습니다.
- g, i, m 플래그는 무엇인가요?
- g(전역)는 모든 매치, 끄면 첫 매치만 표시합니다. i는 대소문자 무시, m은 ^/$가 줄 시작·끝에 맞도록 합니다.
- 탐욕(greedy) 패턴이 너무 많이 먹는 이유는?
- .*·.+는 기본적으로 가장 긴 매치를 잡습니다. 짧게 잡으려면 .*?·.+?(lazy)를 쓰거나, 경계를 넘는 문자를 막는 문자 클래스로 좁히세요.
- 잘못된 패턴이 탭을 멈출 수 있나요?
- 가능합니다. 긴 입력에 중첩 수량자가 있으면 ReDoS처럼 백트래킹이 폭주할 수 있습니다. 디버깅 중에는 짧은 샘플을 쓰세요.