Regex Tester
정규표현식 테스트 및 시각화
Regex Tester 소개
Regex Tester는 정규표현식을 실시간으로 작성, 테스트, 디버깅할 수 있는 무료 온라인 도구입니다. 패턴과 플래그를 입력하고 테스트 문자열을 넣으면, 텍스트에서 모든 매칭이 즉시 하이라이트되고 각 매칭의 값, 위치 인덱스, 캡처 그룹을 보여주는 상세 목록이 표시됩니다. 브라우저의 네이티브 RegExp 엔진을 사용하므로 JavaScript에서 실행한 것과 동일한 결과를 얻을 수 있습니다.
정규표현식은 입력 유효성 검증, 텍스트 추출, 검색 및 치환, 로그 파싱, 데이터 정제에 없어서는 안 될 도구입니다. 개발자들은 이메일, 전화번호, URL 형식을 검증하고, 비정형 텍스트에서 구조화된 데이터를 추출하며, 서버 로그에서 오류 패턴을 분석하고, 패턴 매칭 기반 검색 기능을 구현합니다. 이 테스터를 사용하면 즉각적인 시각 피드백으로 패턴을 반복 수정할 수 있어, 시행착오 과정이 크게 줄어듭니다.
모든 정규표현식 실행은 브라우저 안에서만 이루어집니다. 테스트 문자열과 패턴은 서버로 전송되지 않으므로, 로그 파일, 사용자 기록, API 페이로드 등 민감한 데이터에 대해 안전하게 패턴을 테스트할 수 있습니다. 전역(g), 대소문자 무시(i), 멀티라인(m), dotAll(s) 등 모든 JavaScript 정규표현식 플래그를 지원합니다.
주요 기능
- 패턴이나 테스트 문자열 입력 시 즉시 업데이트되는 실시간 매칭
- 노란색, 녹색, 파란색 등 색상 코드 마커로 테스트 문자열 내 매칭을 직접 강조 표시
- 각 매칭의 괄호 하위 매칭을 그룹 번호와 함께 보여주는 캡처 그룹 표시
- g(전역), i(대소문자 무시), m(멀티라인), s(dotAll) 등 전체 정규표현식 플래그 지원
- 각 매칭이 문자열의 정확히 어느 위치에서 시작하는지 보여주는 인덱스 표시
- 모든 매칭의 값, 위치, 하위 그룹을 체계적으로 정리한 번호 매김 매칭 목록
- 잘못된 정규표현식 구문을 브라우저 엔진의 네이티브 오류 메시지로 즉시 감지
- 빈 문자열 매칭 시 무한 루프를 방지하는 안전 처리
자주 묻는 질문
정규표현식(regex)이란 무엇인가요?
정규표현식은 검색 패턴을 정의하는 문자 시퀀스입니다. 프로그래밍 언어, 텍스트 에디터, 명령줄 도구에서 텍스트를 찾기, 매칭, 추출, 치환하는 데 사용됩니다. 예를 들어 \d{3}-\d{4} 패턴은 123-4567 같은 전화번호 형식과 매칭됩니다. JavaScript, Python, Java, Go, PHP, Ruby 등 거의 모든 현대 프로그래밍 언어에서 기본 지원됩니다.
이 정규표현식 테스터를 어떻게 사용하나요?
패턴 필드에 정규표현식 패턴을 입력하고(양쪽 슬래시 없이), 플래그 필드에 원하는 플래그를 설정한 뒤(예: 전역 대소문자 무시는 "gi"), 아래 텍스트 영역에 테스트 문자열을 입력하거나 붙여넣으세요. 시각화 패널에서 매칭이 하이라이트되고, 인덱스 위치와 캡처 그룹과 함께 목록으로 표시됩니다. 타이핑하는 대로 모든 것이 실시간 업데이트됩니다.
정규표현식 플래그란 무엇이고 어떤 것들이 지원되나요?
플래그는 정규표현식 엔진의 패턴 처리 방식을 변경합니다. 지원 플래그: g(전역) - 첫 번째 매칭에서 멈추지 않고 모든 매칭 탐색, i(대소문자 무시) - 대소문자 구분 없이 매칭, m(멀티라인) - ^와 $가 전체 문자열이 아닌 각 줄의 시작/끝에 매칭, s(dotAll) - 점(.)이 줄바꿈 문자에도 매칭. 플래그를 조합하려면 함께 입력하세요(예: "gim").
캡처 그룹이란 무엇이고 어떻게 확인하나요?
캡처 그룹은 괄호()로 감싼 정규표현식 패턴의 일부로, 매칭의 특정 부분을 추출합니다. 예를 들어 (\d{3})-(\d{4})는 앞 세 자리와 뒤 네 자리를 각각 캡처합니다. 이 도구에서는 각 매칭 아래에 "그룹1", "그룹2" 등으로 매칭된 값이 표시됩니다. 캡처 없이 그룹핑만 필요할 때는 (?:...)를 사용하세요.
이메일, 전화번호 검증에 자주 쓰이는 정규표현식 패턴은?
기본 이메일 검증: [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}는 대부분의 표준 이메일 형식과 매칭됩니다. 한국 전화번호: 0\d{1,2}-\d{3,4}-\d{4}는 010-1234-5678, 02-123-4567 같은 형식과 매칭됩니다. 미국 전화번호: \(?\d{3}\)?[-\s.]?\d{3}[-\s.]?\d{4}는 (123) 456-7890 등의 형식을 처리합니다. 프로덕션 이메일 검증에는 정규표현식만이 아닌 전용 파싱 라이브러리를 함께 사용하는 것을 권장합니다.
패턴이 아무것도 매칭하지 않는 이유는 무엇인가요?
흔한 원인: g 플래그를 빠뜨려 첫 번째 매칭만 찾는 경우, 특수문자를 이스케이프하지 않은 경우(점, 괄호 등은 리터럴로 사용 시 백슬래시 필요), 멀티라인 텍스트에서 m 플래그 없이 ^나 $를 사용한 경우, i 플래그 없이 대소문자가 불일치하는 경우, 구문 오류가 있는 경우(빨간색 오류 메시지로 표시됨) 등이 있습니다. 오류 출력을 확인하고 패턴을 단순화하여 문제를 찾아보세요.
매칭 하이라이팅은 어떻게 작동하나요?
도구는 전역 플래그가 설정된 경우 RegExp.exec()를 루프로 실행하고, 아닌 경우 단일 실행합니다. 각 매칭은 시각화 패널에서 노란색, 녹색, 파란색 순서로 교차하는 색상의 <mark> 태그로 감싸집니다. 매칭되지 않은 주변 텍스트는 일반적으로 표시됩니다.
이 도구를 사용할 때 테스트 데이터가 안전한가요?
네, 완전히 안전합니다. 정규표현식 엔진은 JavaScript의 내장 RegExp 객체를 사용하여 브라우저에서 네이티브로 실행됩니다. 패턴과 테스트 문자열은 서버로 전송되거나 저장되거나 기록되지 않습니다. 프로덕션 로그 샘플, 사용자 데이터, 설정 파일 등 민감한 텍스트에 대해 안심하고 패턴을 테스트할 수 있습니다.