정규식 테스터란?
정규표현식(정규식, Regular Expression)은 문자열에서 원하는 패턴을 찾거나 바꾸기 위한 표현 방식입니다. 이 도구는 패턴과 플래그를 입력하면 즉시 테스트 문자열에서 매치되는 부분을 노란색으로 하이라이트하고, 매치 개수와 각 매치의 캡처 그룹을 보여줍니다. 치환 모드를 켜면 $1 같은 치환 패턴으로 바꾼 결과도 바로 얻을 수 있습니다. 모든 처리는 브라우저 안에서만 이루어집니다.
사용법
- 패턴 칸에 정규식을 입력합니다. 양옆의
/슬래시는 빼고 내용만 적습니다. - 필요한 플래그(g i m s u y)를 체크합니다. 모든 매치를 찾으려면
g를 켜세요. - 테스트 문자열을 입력하면 매치 부분이 하이라이트되고 캡처 그룹이 표시됩니다.
- 치환 모드를 켜고 치환 문자열을 입력하면 변환 결과를 복사할 수 있습니다.
정규식 치트시트
| 패턴 | 의미 |
|---|---|
. | 줄바꿈을 제외한 모든 한 문자 |
\d / \D | 숫자 / 숫자가 아닌 문자 |
\w / \W | 단어 문자(영문·숫자·_) / 그 외 |
\s / \S | 공백 문자 / 공백이 아닌 문자 |
* | 앞 요소 0개 이상 반복 |
+ | 앞 요소 1개 이상 반복 |
? | 앞 요소 0개 또는 1개 (선택) |
{n} / {n,m} | 정확히 n개 / n~m개 반복 |
[abc] / [^abc] | a·b·c 중 하나 / 그것을 제외한 문자 |
[a-z] | a부터 z까지의 범위 |
(…) | 그룹 묶기 (캡처 그룹) |
(?:…) | 캡처하지 않는 그룹 |
a|b | a 또는 b |
^ / $ | 줄/문자열의 시작 / 끝 |
\b | 단어 경계 |
\. | 특수문자 이스케이프(실제 점 문자) |
패턴 설명 패널
패턴을 입력하면 패턴 설명 영역이 나타나 입력한 정규식을 토큰 단위로 잘라 각 기호가 무슨 뜻인지 한국어로 풀어 줍니다. 예를 들어 (\d{4})-(\d{2})를 넣으면 캡처 그룹 시작, 숫자, 정확히 네 번 반복, 문자 그대로 하이픈처럼 조각마다 설명이 붙습니다. 이름 있는 그룹, 캡처하지 않는 그룹 (?:…), 전방탐색 (?=…)·(?!…), 후방탐색 (?<=…)·(?<!…), 문자 클래스, 반복 횟수 지정까지 인식하므로 남이 작성한 복잡한 패턴을 읽을 때 도움이 됩니다.
매치 상세와 캡처 그룹
매치가 있으면 매치 상세에 각 매치의 시작·끝 위치(문자 인덱스)와 매치된 텍스트가 순서대로 표시되고, 괄호로 묶은 캡처 그룹이 있으면 그룹 번호별 값이 함께 나옵니다. (?<year>\d{4})처럼 이름을 붙인 그룹은 이름으로도 표시되며, 선택적 그룹이 매치되지 않았을 때는 값 대신 "(없음)"으로 구분해 보여 줍니다. 로그 한 줄에서 날짜·레벨·메시지를 각각 뽑아내는 패턴을 만들 때 그룹이 의도대로 잡히는지 바로 확인할 수 있습니다.
치환 규칙
치환 모드를 켜면 자바스크립트 String.replace의 치환 규칙을 그대로 사용할 수 있습니다.
$1,$2— 번호로 캡처 그룹 참조$&— 매치된 전체 문자열$$— 달러 기호 자체$`와$'— 매치 앞·뒤 문자열
예를 들어 패턴 (\d{4})-(\d{2})-(\d{2})에 치환 문자열 $1년 $2월 $3일을 넣으면 2026-06-22가 2026년 06월 22일로 바뀝니다. 전체를 바꾸려면 g 플래그를 함께 켜야 합니다.
자주 하는 실수와 주의점
- 패턴 칸에는 양옆의 슬래시를 빼고 내용만 적습니다.
/\d+/g를 통째로 붙여넣으면 슬래시까지 문자로 취급됩니다. g플래그가 꺼져 있으면 첫 번째 매치만 잡힙니다. 치환도 첫 번째만 바뀝니다..는 기본적으로 줄바꿈에 매치되지 않습니다. 여러 줄을 한 덩어리로 다루려면s플래그를 켜세요.*와+는 최대한 길게 잡는 탐욕적 반복입니다. 최소한만 잡으려면*?,+?처럼 물음표를 붙입니다.- 점·괄호·대괄호 같은 특수문자를 문자 그대로 찾으려면
\.처럼 역슬래시로 이스케이프해야 합니다. - 브라우저의 자바스크립트 엔진을 그대로 쓰므로 PCRE나 파이썬
re에만 있는 문법은 동작하지 않을 수 있습니다.
자주 묻는 질문
정규표현식(정규식)이란 무엇인가요?
문자열에서 특정 패턴을 찾거나 바꾸기 위해 사용하는 표현 방식입니다. 예를 들어 \d+ 는 한 개 이상의 숫자를, [a-z]+ 는 한 개 이상의 소문자를 의미합니다. 검색, 치환, 입력값 검증 등 다양한 곳에 쓰입니다.
플래그 g, i, m, s, u, y는 각각 무슨 뜻인가요?
g는 전역(모든 매치), i는 대소문자 무시, m은 여러 줄 모드(^ $가 각 줄에 적용), s는 점(.)이 줄바꿈도 포함, u는 유니코드 모드, y는 sticky(지정 위치부터 매치)입니다. 여러 매치를 찾으려면 보통 g 플래그를 켭니다.
매치가 여러 개인데 하나만 잡혀요.
g(전역) 플래그가 꺼져 있으면 첫 번째 매치만 찾습니다. 모든 매치를 하이라이트하고 전부 치환하려면 g 플래그를 켜세요.
치환 문자열에서 캡처 그룹을 어떻게 쓰나요?
$1, $2처럼 번호로 참조하고, $& 는 매치된 전체 문자열, $$ 는 달러 기호 자체를 뜻합니다. 이름 있는 그룹은 달러 기호 뒤에 꺾쇠괄호로 이름을 감싸 참조합니다. 자바스크립트 replace의 치환 규칙을 그대로 따릅니다.
패턴 설명 패널은 무엇인가요?
입력한 패턴을 토큰 단위로 잘라 각 기호가 무슨 뜻인지 한국어로 풀어 주는 기능입니다. 패턴을 입력하면 자동으로 나타나며, 정규식을 처음 배울 때나 남이 작성한 복잡한 패턴을 읽을 때 도움이 됩니다.
이 도구는 어떤 정규식 문법을 따르나요?
브라우저에 내장된 자바스크립트 RegExp 엔진을 그대로 사용합니다. 이름 있는 그룹, 전방·후방탐색 같은 문법은 쓸 수 있지만, PCRE나 파이썬 re에만 있는 문법은 동작하지 않을 수 있습니다.
빈 문자열에 매치되면 어떻게 표시되나요?
길이가 0인 매치는 결과 영역에 빈 매치 표시로 나타납니다. 이런 패턴은 무한 반복이 생길 수 있어 매치 위치를 한 칸씩 밀며 처리하며, 전체 매치 수는 10만 개에서 멈춥니다.
입력한 내용이 서버로 전송되나요?
아니요. 모든 정규식 테스트와 치환은 브라우저 안에서만 실행되며 입력한 패턴과 텍스트는 서버로 전송되거나 저장되지 않습니다.