정규식 테스트

정규표현식과 테스트 문자열을 넣으면 일치하는 부분을 실시간으로 강조하고, 캡처 그룹·이름 그룹과 치환 결과까지 보여 드려요. 이메일·휴대폰·주민등록번호 패턴도 바로 불러올 수 있어요.

일치 결과 —

일치 목록 · 그룹

#위치일치그룹

일치하는 부분이 없어요.


  

정규식 테스트란?

정규표현식(Regular Expression, 정규식)은 문자열에서 특정 규칙을 가진 부분을 찾거나 바꾸는 패턴 언어입니다. 입력값 검증, 로그 분석, 대량 텍스트 치환 등에 쓰입니다. 이 도구는 브라우저의 JavaScript 정규식 엔진으로 동작하므로 JavaScript·TypeScript 코드에서와 똑같은 결과를 확인할 수 있습니다.

검사는 별도 작업 스레드(Web Worker)에서 실행되어, 잘못된 패턴으로 시간이 오래 걸려도 1.5초 뒤 자동으로 멈추고 화면이 멈추지 않습니다.

사용 방법

  1. 자주 쓰는 패턴에서 예시를 고르거나 정규식 칸에 직접 입력하세요. 슬래시(/)는 쓰지 않아도 됩니다.
  2. 필요한 플래그(g, i, m, s, u, y)를 눌러 켜고 끕니다.
  3. 테스트할 문자열을 입력하면 일치하는 부분이 색으로 표시되고, 아래 목록에 위치와 그룹 값이 나옵니다.
  4. 치환 문자열에 $1, $<이름>, $&를 넣으면 바꾼 결과를 미리 볼 수 있습니다.

정규식 기본 문법

표현의미예
\d \w \s숫자 / 영문·숫자·_ / 공백\d{3}
.줄바꿈을 뺀 아무 문자 (s 플래그면 포함)a.c
* + ? {n,m}0회 이상 / 1회 이상 / 0~1회 / n~m회\d{3,4}
^ $시작 / 끝 (m 플래그면 줄마다)^\d+$
[가-힣]완성형 한글 한 글자[가-힣]+
( ) (?: )캡처 그룹 / 캡처하지 않는 그룹(\d{4})-(\d{2})
(?<이름> )이름 있는 그룹(?<year>\d{4})
(?= ) (?! )뒤에 오는 것 확인 / 부정\d+(?=원)

플래그 의미

  • g (global): 처음 하나가 아니라 일치하는 부분을 모두 찾습니다.
  • i (ignoreCase): 대소문자를 구분하지 않습니다.
  • m (multiline): ^와 $가 각 줄의 시작·끝에 일치합니다.
  • s (dotAll): 점(.)이 줄바꿈 문자에도 일치합니다.
  • u (unicode): 이모지 같은 4바이트 문자를 한 글자로 다루고 \p{…} 문법을 쓸 수 있습니다.
  • y (sticky): 문자열의 정해진 위치(처음)에서만 일치를 시도합니다.

치명적 백트래킹(ReDoS) 주의

^(a+)+$처럼 반복 안에 반복이 중첩된 패턴은 일치하지 않는 입력에서 경우의 수가 기하급수적으로 늘어나 서버를 멈추게 할 수 있습니다. 이를 ReDoS 공격이라고 합니다. 이 도구에서 시간 초과가 난다면 (a+)+를 a+로 바꾸는 식으로 중첩 반복을 없애세요.

자주 묻는 질문

주민등록번호 패턴으로 진짜 번호인지 확인할 수 있나요?

아니요. 정규식은 생년월일·성별 자리의 형식만 검사합니다. 실제 번호 여부는 확인할 수 없고, 개인정보 보호를 위해 실제 번호를 입력하지 마세요. 입력값은 서버로 전송되지 않습니다.

Java, Python 정규식과 결과가 같나요?

기본 문법은 대부분 같지만 세부 동작이 다를 수 있습니다. 예를 들어 Python은 이름 그룹을 (?P<이름>…)으로 쓰고, Java 문자열에서는 역슬래시를 두 번(\\d) 써야 합니다. 이 도구는 JavaScript(ECMAScript) 기준입니다.

한글만 검사하려면 어떻게 하나요?

완성형 한글은 [가-힣], 자음·모음까지 포함하려면 [ㄱ-ㅎㅏ-ㅣ가-힣]을 씁니다. 문자열 전체가 한글인지 보려면 ^[가-힣]+$처럼 시작과 끝을 고정하세요.

결과가 너무 많으면 어떻게 되나요?

일치는 최대 5,000개까지 찾아 강조하고, 목록 표에는 처음 300개를 보여 줍니다.