정규표현식(RegEx) 테스터 및 매처

실시간 매칭 하이라이트 기능으로 자바스크립트 정규표현식 테스트.

정규표현식(RegEx) 테스터 및 매처

실시간 매칭 하이라이트 기능으로 자바스크립트 정규표현식 테스트.

사용 방법

1
텍스트 입력 또는 붙여넣기
입력 공간에 텍스트나 코드를 직접 붙여넣습니다.
2
변환 및 검사 적용
도구를 실행하여 텍스트를 포맷팅, 필터링 또는 분석합니다.
3
결과 복사
정리된 결과물을 클립보드에 바로 복사합니다.
개념 및 지식 허브

정규표현식(RegEx) 테스터: 실시간 패턴 매칭, 플래그 분석 및 캡처 그룹 디버거

정규표현식 테스터는 복잡한 문자열 유효성 검증, 데이터 스크래핑 패턴 설계, 서버 접속 로그 파싱에 필요한 정규식(Regular Expression) 규칙을 실시간으로 컴파일하고 일치 구간을 색상으로 시각화해 주는 전문 개발자 디버깅 도구입니다. ECMAScript 표준 정규식 엔진을 바탕으로 전역 검색(g), 대소문자 무시(i), 다중행 일치(m), 점 개행 일치(s) 등 주요 플래그 조합에 따른 매칭 동작과 역추적(Backtracking) 한계를 직관적으로 검증할 수 있습니다.

실제 대규모 회원가입 양식의 한국 전화번호와 이메일 패턴을 검증하는 실무 상황에서 정규식 패턴 ^01[016789]-(\d{3,4})-(\d{4})$를 등록하고 테스트 텍스트 010-8520-1478 및 02-123-4567을 기입하면, 유효한 휴대전화 패턴에만 실시간 하이라이트가 활성화되며 캡처 그룹 1번(8520)과 캡처 그룹 2번(1478)이 0.005초 내로 분리 표시되어 복잡한 서브매칭 추출 결과를 즉시 확인할 수 있습니다.

정규식 파싱과 문자열 매칭 엔진은 100% 클라이언트 브라우저 자바스크립트 가상 메모리 안에서만 독립적으로 구동됩니다. 대용량 운영 서버 에러 로그나 고객 전화번호 목록 등 민감한 개인정보 텍스트를 테스트창에 붙여넣더라도 외부 원격 서버로 일절 전송되지 않아 안심하고 안전하게 정규식 규칙을 튜닝하고 검증할 수 있습니다.

기술 실전 가이드

정규식이 일치하지 않는 이유와 해결법: 플래그(g, i, m, s), 줄바꿈 앵커, 이스케이프

정규식 매칭 실패 원인을 해결하세요. g, i, m, s 플래그의 차이, 멀티라인 ^와 $ 앵커, 탐욕적(Greedy) vs 게으른(Lazy) 수량자, ReDoS 방지 가이드.

가이드 읽기 →

핵심 아키텍처 및 수학 공식

RegExp 매칭 = Pattern.exec(SubjectString) ➔ [FullMatch, Group1, Group2, index, input]

입력 패턴과 플래그를 바탕으로 정규식 객체를 빌드한 후 입력 문자열을 순회하며 일치하는 인덱스 범위와 하위 캡처 그룹(Capturing Groups)을 배열로 추출합니다.

모범 사례 및 필수 지침

  • 파멸적 역추적(Catastrophic Backtracking) 방지: 중첩된 수량자(예: (a+)+)나 모호한 반복 패턴은 기하급수적 계산 시간을 초래해 브라우저 탭을 멈추게 하므로 소유적 수량자나 명확한 앵커 경계를 지정하세요.
  • 비캡처 그룹(?:...) 적극 활용: 단순 연산자 우선순위 지정이나 묶음 처리가 목적일 때는 불필요한 메모리 할당을 줄이기 위해 일반 캡처 괄호 대신 비캡처 그룹을 사용하는 것이 성능에 유리합니다.
  • 이스케이프 특수문자 점검: 마침표(.), 슬래시(/), 대괄호 등 메타 문자를 문자 그대로 매칭할 때는 역슬래시(\)를 앞에 붙여 의도치 않은 임의 문자 일치를 방지하세요.
  • 줄바꿈 경계(^, $) 처리 시 m 플래그 검토: 여러 줄로 구성된 다중행 텍스트에서 각 행의 시작과 끝을 각각 검증하고자 할 때는 multiline(m) 플래그를 반드시 활성화해야 합니다.

자주 묻는 질문 (FAQ)

정규식 플래그 g, i, m, s의 구체적인 차이는 무엇인가요?
g는 텍스트 전체에서 일치하는 모든 구간을 검색하고, i는 알파벳 대소문자를 구분하지 않습니다. m은 ^와 $가 각 줄의 시작과 끝에 반응하도록 하며, s는 점(.) 문자가 개행 문자(\n)까지 포함해 매칭하도록 허용합니다.
특정 패턴을 입력했을 때 브라우저가 일시적으로 멈추는 이유는 무엇인가요?
중첩 수량자 등으로 인해 정규식 엔진이 불일치를 확인하기 위해 수백만 번의 역추적(Backtracking)을 수행하는 ReDoS 현상 때문입니다. 패턴의 반복 범위를 구체적으로 한정해야 합니다.
전방탐색(Lookahead)과 후방탐색(Lookbehind) 구문도 지원되나요?
최신 자바스크립트 엔진 규격에 따라 긍정/부정 전방탐색(?=...), (?!...) 및 긍정/부정 후방탐색(?<=...), (?
테스트창에 입력한 개인정보나 시스템 로그가 외부로 유출되나요?
전혀 유출되지 않습니다. 정규식 테스터의 모든 파싱과 매칭 엔진은 브라우저 탭 내부의 독립된 자바스크립트 컨텍스트에서만 실행되며 외부 서버와 통신하지 않습니다.