1. 홈
  2. 개발자
  3. 정규식 테스트

정규식 테스트

정규식 일치 강조, 캡처 그룹 표, $1·$<이름> 치환 미리보기.

내 브라우저에서 처리 · 업로드 없음 오프라인 동작
/(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/g
$1·$2 번호 그룹, $<이름> 이름 그룹, $& 일치 전체, $$ 는 $ 문자

패턴과 텍스트는 브라우저 안에서만 처리되며 서버로 전송되지 않습니다.

사용 방법

  1. 정규식 패턴에 슬래시(/) 없이 패턴만 입력합니다. 아래에 /패턴/플래그 형태로 실제 정규식이 표시됩니다.
  2. 필요한 플래그를 켭니다. 모든 일치를 찾으려면 g가 있어야 합니다.
  3. 테스트할 텍스트에서 일치하는 부분이 강조되고, 아래 표에 위치와 캡처 그룹($1, $<이름>)이 나옵니다.
  4. 치환 문자열을 넣으면 String.prototype.replace 결과를 미리 볼 수 있습니다.

플래그 정리

이 도구는 브라우저의 자바스크립트 정규식 엔진(ECMAScript)을 그대로 씁니다.

플래그 의미 예
g 전체 찾기 — 없으면 첫 일치만 /\d+/g → a1b22에서 1, 22
i 대소문자 무시 /abc/i → ABC 일치
m ^ $가 줄마다 시작·끝에 일치 줄 단위 검사
s .이 줄바꿈까지 포함 /a.b/s → a(줄바꿈)b
u 유니코드 모드 — 이모지를 한 글자로, \p{Script=Hangul} 사용 가능 /./u → 😀 한 번
y 마지막 일치 바로 다음 위치에서만 찾기 (sticky) 토크나이저
d 그룹별 시작·끝 위치(indices) 제공 표에 [시작–끝] 표시

실제 예시

하고 싶은 것 패턴 치환
날짜 형식 바꾸기 (?<y>\d{4})-(?<m>\d{2})-(?<d>\d{2}) $<y>년 $<m>월 $<d>일
휴대폰 번호 가리기 (01[016789])-?(\d{3,4})-?(\d{4}) $1-****-$3
한글만 찾기 [가-힣]+ (플래그 g) —
앞뒤 공백 지우기 ^\s+|\s+$ (플래그 gm) 빈 문자열

[가-힣]은 완성형 한글 11,172자만 포함하고 ㄱ, ㅏ 같은 낱자모는 빠집니다. 자모까지 찾으려면 u 플래그와 \p{Script=Hangul}을 쓰세요.

주의할 점

  • 폭주 패턴(catastrophic backtracking): (a+)+$처럼 반복 안에 반복이 있으면, 일치에 실패할 때 시도할 경우의 수가 기하급수적으로 늘어 브라우저가 멈출 수 있습니다. 이 도구는 별도 스레드(Web Worker)에서 검사하고 1초가 넘으면 강제로 중단합니다. 서버 코드에 이런 패턴이 있으면 ReDoS 공격에 취약하니 고쳐야 합니다.
  • 너무 큰 입력은 앞 100,000자만 검사하고, 일치는 최대 1,000개까지 표시합니다.
  • 다른 언어(PCRE·파이썬·자바)의 정규식과 문법이 조금 다릅니다. 예를 들어 자바스크립트는 (?i) 같은 인라인 플래그를 패턴 맨 앞에 쓸 수 없고, 이름 그룹은 (?<name>...)로 씁니다.

자주 묻는 질문

입력한 텍스트가 서버로 가나요?

아니요. 정규식 실행은 이 브라우저의 워커 안에서 이뤄지며 네트워크 요청이 없습니다. 로그나 고객 데이터로 패턴을 시험해도 안전합니다.

결과를 다른 텍스트와 비교하고 싶어요.

치환 결과를 복사해 텍스트 비교에 원문과 함께 넣으면 바뀐 부분이 줄 단위로 표시됩니다. 줄 중복 정리가 목적이라면 중복 줄 제거가 더 간단합니다.

준비 중인 도구

필요한 도구가 없나요?

어떤 작업을 하고 싶은지 적어 주세요. 요청이 많은 도구부터 만듭니다.