정규식 테스터
정규식을 입력하면 테스트 문자열에서 일치하는 부분을 실시간으로 하이라이트하고, 매치 목록과 캡처 그룹, 치환 결과까지 확인할 수 있습니다. 서버로 전송하지 않고 브라우저 안에서만 처리됩니다.
이 배너는 쿠팡 파트너스 활동의 일환으로 게재되며, 이에 따른 일정액의 수수료를 제공받습니다.
사용 방법
- 패턴 입력:
/ /사이에 정규식을 입력하고, 필요한 플래그(g, i, m, s, u, y)를 체크하세요. 패턴에 문법 오류가 있으면 바로 아래에 오류 메시지가 표시됩니다. - 테스트 문자열: 매칭을 확인하고 싶은 텍스트를 입력하면, 일치하는 부분이 하이라이트로 실시간 표시됩니다.
- 매치 목록 확인: 각 매치의 위치, 전체 매치 문자열, 번호별/이름별 캡처 그룹 값을 확인할 수 있습니다. 📋 버튼으로 값만 바로 복사할 수 있습니다.
- 치환 미리보기: "치환(Replace)" 패널을 열고 치환할 문자열을 입력하면(
$1,$2,$<이름>으로 캡처 그룹 참조 가능), JavaScript의String.replace()와 동일한 규칙으로 치환된 결과를 보여줍니다. g 플래그가 없으면 첫 번째 매치만 치환됩니다.
모든 매칭은 브라우저 내장 JavaScript 정규식 엔진으로 처리되며, 입력한 패턴과 문자열은 서버로 전송되거나 저장되지 않습니다.
자주 쓰는 플래그와 패턴
플래그: g(전역 검색, 모든 매치 찾기) · i(대소문자 무시) · m(멀티라인, ^/$가 각 줄 경계에 매치) · s(dotAll, .이 줄바꿈도 매치) · u(유니코드 모드) · y(sticky, lastIndex 위치에서만 매치).
자주 쓰는 패턴 예시:
\b[\w.+-]+@[\w-]+\.[a-zA-Z]{2,}\b— 이메일 주소^\d{2,3}-\d{3,4}-\d{4}$— 한국 전화번호(하이픈 포함)https?:\/\/[^\s]+— URL^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$— 대소문자+숫자를 포함한 8자 이상 비밀번호(\d{4})-(\d{2})-(\d{2})— YYYY-MM-DD 날짜(캡처 그룹으로 연/월/일 분리)
자주 묻는 질문
입력한 패턴이나 문자열이 외부로 전송되나요?
아니요. 모든 매칭과 치환은 브라우저 안에서 JavaScript로만 처리되며 서버로 전송되지 않습니다.
어떤 정규식 방언(flavor)을 기준으로 하나요?
브라우저 JavaScript 엔진의 정규식 문법을 그대로 사용합니다. PCRE(PHP)나 Python의 re 모듈과는 일부 문법(예: 후방탐색 지원 범위, 명명된 그룹 문법)이 다를 수 있습니다.
매치가 하나만 나와요. g 플래그를 켰는데도 그런가요?
하이라이트와 매치 목록은 표시 목적상 항상 모든 매치를 찾아 보여줍니다. 다만 "치환" 결과는 실제 String.replace() 동작과 동일하게, g 플래그가 없으면 첫 번째 매치만 치환됩니다. 전체를 치환하려면 g 플래그를 켜세요.
패턴을 잘못 입력하면 브라우저가 멈추나요?
일부 정규식(예: 중첩된 반복 구문)은 "치명적 백트래킹(catastrophic backtracking)"으로 특정 입력에 대해 매칭 시간이 기하급수적으로 늘어날 수 있습니다. 이는 이 도구만의 문제가 아니라 정규식 엔진 자체의 특성이므로, 페이지가 느려지거나 멈춘 것처럼 보이면 패턴을 단순화하거나 탭을 새로고침하세요.
이름 있는 캡처 그룹(named capture group)도 지원하나요?
네. (?<name>...) 형태로 작성하면 매치 목록에 그룹 이름과 함께 표시되고, 치환 문자열에서는 $<name>으로 참조할 수 있습니다.