본문으로 건너뛰기
100% 개인정보 보호 — 파일은 기기 안에 그대로 유지됩니다
>_
한국어

정규식 테스터

실시간 하이라이트, 캡처 그룹, 치환 미리보기로 정규표현식을 테스트하세요 — 모든 과정이 브라우저 안에서 이루어집니다.

//g

엔진: 브라우저가 실행하는 JavaScript(ECMAScript) 정규식입니다. PCRE, Python, Go, Java, .NET과 동작이 다를 수 있습니다.

플래그
패턴 설명

패턴을 입력하면 토큰별 설명이 표시됩니다.

패턴 라이브러리

패턴을 클릭하면 샘플 텍스트와 함께 테스터에 불러옵니다.

한 줄에 케이스 하나. 패턴이 일치해야 하면 "+ "로, 일치하면 안 되면 "- "로 시작하세요 (여기서는 g와 y 플래그가 무시됩니다).

코드 생성

코드를 생성하려면 패턴을 입력하세요.

패턴은 작성한 그대로 복사됩니다 (이름 있는 그룹, 플래그, 치환 토큰만 조정). 대상 엔진의 후방 탐색, 역참조, 유니코드 지원 여부를 확인하세요.

빠른 참조
  • \d — 모든 숫자 (0–9)
  • \w — 모든 단어 문자 (문자, 숫자, 밑줄)
  • \s — 모든 공백 문자
  • . — 줄바꿈을 제외한 모든 문자
  • ^ — 문자열의 시작 (multiline 플래그 사용 시 줄의 시작)
  • $ — 문자열의 끝 (multiline 플래그 사용 시 줄의 끝)
  • * — 앞 토큰이 0회 이상 반복
  • + — 앞 토큰이 1회 이상 반복
  • ? — 앞 토큰이 0회 또는 1회
  • {n,m} — n회 이상 m회 이하 반복
  • (...) — 캡처 그룹, (?:...) — 비캡처 그룹
  • \b — 단어 경계, | — 논리합 (OR)

브라우저에서 정규식을 테스트하면 실제로 어떤 일이 일어날까?

정규표현식(regex)은 텍스트를 매칭하기 위한 간결한 패턴 언어입니다. "이 문자열이 이메일 주소처럼 생겼는지" 확인하는 것부터 "이 문서에서 모든 전화번호를 찾는" 것, "이 문자열에서 HTML 태그를 제거하는" 것까지 다양한 작업에 쓰입니다. 문제는 정규식 문법이 미묘하게 틀리기 쉽다는 점입니다. 이스케이프해야 할 `.`을 빼먹거나, 탐욕적인(greedy) `*`가 의도한 것보다 더 많은 범위를 삼켜버리거나, 그룹이 원하는 부분을 캡처하지 못하는 경우가 흔합니다. 아무런 검증 없이 작성했다가 프로덕션 데이터에 실제로 적용하고 나서야 잘못됐다는 걸 알게 되는 건 좋은 학습 방법이 아닙니다.

이 도구는 자바스크립트에 내장된 `RegExp` 엔진을 그대로 사용하며, 입력하는 즉시 브라우저에서 바로 실행됩니다. 서버는 전혀 개입하지 않으므로, 테스트하는 텍스트(실제 사용자 데이터, 로그, 그 외 서드파티 서비스에 붙여넣고 싶지 않은 어떤 데이터든)는 기기 밖으로 나가지 않습니다. 실제 프로덕션에서 자바스크립트 코드가 사용하는 것과 완전히 동일한 엔진이기 때문에, 여기서 보이는 결과 — 어떤 문자가 매치되는지, 탐욕적 수량자가 어떻게 동작하는지, 그룹이 무언가를 캡처했는지 — 는 다른 정규식 방언(flavor)으로부터의 근사치가 아니라 런타임에서 실제로 얻게 될 결과 그 자체입니다.

패턴을 입력하고 필요한 플래그를 켜보세요. 첫 매치에서 멈추지 않고 모든 매치를 찾으려면 `g`, 대소문자를 구분하지 않으려면 `i`, `^`와 `$`가 전체 문자열이 아니라 각 줄의 시작/끝에 매치하도록 하려면 `m`, `.`이 줄바꿈 문자에도 매치하도록 하려면 `s`를 사용합니다. 테스트 문자열 안의 모든 매치는 실시간으로 하이라이트되며, 각 매치는 전체 매치 텍스트, 위치, 그리고 `(?<year>\d{4})`와 같은 이름 있는 그룹을 포함한 캡처 그룹까지 아래에 자세히 분해되어 표시됩니다. 덕분에 추출하려던 그룹이 실제로 원하는 부분을 캡처했는지 바로 확인할 수 있습니다. 치환 섹션에서는 패턴과 치환 문자열로 `String.replace()`를 실행했을 때 나올 결과를 `$1`이나 `$<year>` 같은 그룹 역참조까지 포함해서 그대로 보여줍니다.

아래의 빠른 참조 패널에는 작업 중에 가장 자주 잊어버리는 토큰들 — `*`와 `+`의 차이, 비캡처 그룹 `(?:...)`가 어디에 쓰이는지, `\b`가 단어 경계를 어떻게 표시하는지 — 을 정리해두어 페이지를 벗어나지 않고도 바로 확인할 수 있습니다. 실제와 비슷한 테스트 데이터로 원하는 대로 동작하는 패턴을 찾았다면, 바로 코드에 옮겨 사용하면 됩니다. 주변 데이터 자체를 검증하거나 다시 정리해야 한다면 JSON 포맷터 & 검증기와 텍스트 비교(Text Diff) 도구를 함께 사용하기 좋습니다.

자주 묻는 질문

잘못된 정규식 패턴 때문에 페이지가 멈추나요?

아니요. 매칭은 강제 시간 제한이 있는 별도의 Web Worker에서 실행되므로 치명적 백트래킹이 일어나는 패턴이라도 탭이 멈추지 않습니다.

이름 있는 캡처 그룹과 번호 캡처 그룹을 모두 보여 주나요?

네. 각 일치 항목마다 번호 그룹과 (?<year>\d{4}) 같은 이름 있는 그룹을 모두 나열합니다.

코드에 쓰기 전에 치환 결과를 미리 볼 수 있나요?

네. 치환 패널은 그룹 역참조를 포함해 String.replace()가 출력할 결과를 그대로 보여 줍니다.

관련 도구