Devin.KR

REGEX TESTER · JAVASCRIPT

정규식 테스터

이 정규식, 정말 원하는 것만 잡을까?

패턴에 (?<year>\d{4})-(\d{2}) 를, 대상 텍스트에 로그 몇 줄을 넣고 실행하면 매치된 곳을 노랗게 칠하고 캡처 그룹 값을 표로 보여 줍니다. 치환식을 적으면 replace 결과도 미리 봅니다.

  • 캡처 그룹 표
  • 치환 미리보기
  • 1초 실행 제한
  • 브라우저에서만 처리
바로 사용하기 ↓

매치 하이라이트

캡처 그룹

매치위치전체그룹값

치환 미리보기

이 도구를 쓰는 법

g i m s u 플래그를 조합할 수 있습니다. 표에는 번호 캡처와 (?<name>...) 이름 캡처가 표시됩니다.

패턴은 격리된 Worker에서 실행하며 1초를 넘으면 강제로 중단합니다. 빈 문자열 매치는 lastIndex를 직접 전진시켜 무한 반복을 막습니다. 단, 이 제한은 정규식 자체가 안전하다는 보증은 아닙니다.

브라우저에서만 처리되며 입력값을 서버로 보내지 않습니다.

MADE FOR YOUR WORK

이럴 때 쓰세요

입력값 검증 패턴 만들기

이메일·전화번호·우편번호 검증식을 여러 예시에 대 보며 통과와 거절이 의도대로인지 확인합니다.

로그에서 값 뽑기

로그 줄에서 날짜·요청 ID·응답 시간을 캡처 그룹으로 뽑아 표로 확인합니다.

일괄 치환 미리보기

편집기에서 찾아 바꾸기를 하기 전에 $1, $<name> 을 쓴 치환 결과를 먼저 눈으로 봅니다.

느린 패턴 걸러 내기

특정 입력에서 끝나지 않는 패턴을 넣어도 1초 뒤 중단되므로, 서버에 넣기 전에 위험 신호를 봅니다.

STEP BY STEP

정규식 테스터 사용 방법

이렇게 쓰세요

  1. 패턴과 플래그 입력

    패턴 칸에 슬래시 없이 정규식을, 옆 칸에 g i m s u 중 필요한 플래그를 적습니다. 기본값은 g 입니다.

  2. 대상 텍스트 넣기

    대상 텍스트 칸에 검사할 문자열을 넣습니다. 여러 줄도 됩니다.

  3. 실행 누르기

    매치 하이라이트에 일치한 곳이 칠해지고, 캡처 그룹 표에 매치 번호·위치·그룹별 값이 나옵니다.

  4. 치환식으로 미리보기

    치환식 칸에 $1, $&, $<name> 을 넣고 다시 실행하면 치환 미리보기에 replace 결과가 나옵니다.

UNDERSTAND THE BASICS

정규식 메타문자, 이것부터 외우자

정규식은 '이런 모양의 글자'를 기호로 적는 작은 언어입니다. 대부분의 글자는 자기 자신과 일치하고, . * + ? ( ) [ ] { } ^ $ | \ 같은 메타문자만 특별한 뜻을 가집니다. 메타문자를 글자 그대로 찾으려면 앞에 \ 를 붙입니다. 예를 들어 점 하나는 \. 입니다.

이 도구는 JavaScript 정규식 엔진으로 실행합니다. 이름 있는 그룹 (?<name>…), 앞뒤 확인 (?=…) (?<=…) 은 되지만, Java·PCRE 의 소유 수량자 a++ 나 원자 그룹 (?>…) 은 문법 오류입니다. 다른 언어로 옮길 패턴이라면 그 언어에서도 한 번 더 확인하세요.

한글을 다룰 때 특히 주의할 점이 있습니다. JavaScript 에서 \w 는 영문·숫자·밑줄만 뜻하고 한글은 포함하지 않습니다. 한글 음절은 [가-힣] 로 적고, u 플래그를 켜면 \p{Script=Hangul} 같은 유니코드 속성도 쓸 수 있습니다.

자주 쓰는 정규식 문법
표기뜻예
.줄바꿈을 뺀 아무 글자 하나(s 플래그면 줄바꿈 포함)a.c → abc, a1c
\d · \w · \s숫자 · 영문숫자밑줄 · 공백\d{3} → 010
[abc] · [^abc]괄호 안 글자 하나 · 괄호 안에 없는 글자 하나[가-힣]+ → 한글 덩어리
* · + · ?0번 이상 · 1번 이상 · 0 또는 1번colou?r → color, colour
{n,m}n번 이상 m번 이하\d{2,4}
^ · $시작 · 끝(m 플래그면 줄마다)^ERROR
( ) · (?: )캡처 그룹 · 캡처하지 않는 묶음(\d+)원
(?<name> )이름 있는 캡처 그룹, 치환에서 $<name>(?<y>\d{4})
a|ba 또는 bcat|dog
\b단어 경계(영문 기준)\bid\b
(?=…) · (?!…)뒤에 …가 오는/오지 않는 자리\d+(?=원)

정규식 테스터 사용 안내

정규식 매치 하이라이트, 이름 있는 캡처 그룹 표, replace 치환 결과를 안전 제한과 함께 확인합니다.

정규식 패턴, 플래그와 테스트 문자열을 입력하세요. 일치 결과를 확인하며 패턴을 조정하세요. JavaScript 정규식 문법을 기준으로 합니다.

QUICK EXAMPLE

정규식 테스터 사용 예제

입력 · 시작

패턴: [0-9]+ / 문자열: order-2026

결과 · 확인

숫자 구간 2026을 매칭

JavaScript 정규식 엔진 기준입니다. 다른 언어의 정규식과 차이가 있을 수 있습니다.

어떻게 구현했나

패턴은 화면과 같은 스레드가 아니라 별도의 Web Worker 안에서 실행합니다. 정규식은 입력에 따라 사실상 끝나지 않는 경우가 있는데(백트래킹 폭발), 그 코드가 화면 스레드에 있으면 탭 전체가 얼어붙어 새로고침 말고는 방법이 없습니다.

Worker는 1초가 지나면 강제로 종료합니다. 실행 중인 정규식은 중간에 취소할 방법이 없어서, 멈추게 하는 유일한 수단이 스레드를 통째로 버리는 것입니다.

빈 문자열에 매치되는 패턴은 검색 위치가 전진하지 않아 무한 반복이 됩니다. 이때는 위치를 직접 올리되, 서로게이트 쌍(이모지 등)이면 2를 더해 문자 한가운데를 가리키지 않게 합니다.

매치가 10,000개를 넘으면 중단하고, 플래그는 g i m s u만 중복 없이 받습니다.

이 제한들은 결과를 보여주기 위한 안전장치이지 그 패턴이 안전하다는 보증이 아닙니다. 같은 정규식을 서버에서 쓸 계획이라면 ReDoS 검토를 따로 하세요.

BEFORE YOU FINISH

자주 하는 실수

g 플래그를 빼고 전부 찾길 기대한다

g 가 없으면 첫 번째 매치 하나만 찾고, 치환도 첫 번째만 바뀝니다. 모든 매치를 보려면 플래그 칸에 g 를 두세요.

탐욕적 수량자에 한 줄이 통째로 먹힌다

<.*> 는 가장 긴 매치를 찾아 첫 < 부터 마지막 > 까지 잡습니다. 가장 짧게 잡으려면 <.*?> 처럼 ? 를 붙이세요.

검증식에 ^ 와 $ 를 빼먹는다

\d{6} 은 '1234567890' 안의 여섯 자리에도 일치합니다. 입력 전체가 형식에 맞는지 볼 때는 ^\d{6}$ 처럼 양 끝을 고정하세요.

자주 묻는 질문

정규식 테스트는 어떻게 하나요?

패턴 칸에 정규식을, 대상 텍스트 칸에 문자열을 넣고 실행을 누르세요. 일치한 부분이 노랗게 칠해지고 캡처 그룹 값이 표로 나옵니다.

정규식에서 한글만 찾으려면?

[가-힣]+ 를 쓰면 완성형 한글 음절 덩어리를 찾습니다. 자음·모음만 있는 ㄱ, ㅏ 까지 포함하려면 [ㄱ-ㅎㅏ-ㅣ가-힣]+ 처럼 범위를 넓히세요.

자바나 파이썬 정규식도 테스트되나요?

JavaScript 엔진 기준입니다. 기본 문법은 대부분 같지만 소유 수량자, 원자 그룹, 인라인 플래그 등은 언어마다 달라 결과가 다를 수 있습니다.

'1초 제한으로 실행을 중단했습니다'가 나와요

(a+)+ 처럼 중첩된 반복은 특정 입력에서 계산이 폭발적으로 늘어납니다(백트래킹 폭발). 반복을 겹치지 않게 고치는 것이 안전하며, 서버에서 쓸 패턴이라면 ReDoS 위험을 따로 검토하세요.

치환식을 비우면 매치된 부분이 지워지나요?

아닙니다. 치환식 칸이 비어 있으면 치환 미리보기에 원문이 그대로 나옵니다. 삭제 결과를 보고 싶다면 편집기에서 확인하세요.

지원하는 플래그는 무엇인가요?

g(전체), i(대소문자 무시), m(여러 줄), s(점이 줄바꿈 포함), u(유니코드) 다섯 가지이며 같은 플래그를 두 번 쓰면 오류가 납니다.

입력한 데이터는 어디에서 처리하나요?

이 도구의 입력 데이터는 브라우저에서 처리하며 도구 기능을 위해 서버로 업로드하지 않습니다. 결과를 공유하기 전 민감한 정보가 없는지 확인하세요.

함께 쓰면 좋은 도구

전체 도구 바로가기

손으로 익히기

문서 · 데이터 변환

개발 실무

한국 개발 특화

API · 네트워크

이미지 · 색상