정규식(Regex) 테스터
정규식 패턴을 입력하고 실시간으로 매칭 결과를 확인하세요.
플래그 설정, 캡처 그룹, 치환 테스트, 패턴 한글 설명까지 한 곳에서 처리할 수 있습니다.
정규식 테스터 활용 가이드
입력 데이터 검증
- 이메일, 전화번호 형식 검증
- 비밀번호 강도 검사
- 날짜, IP 주소 유효성 확인
텍스트 데이터 처리
- 로그 파일에서 특정 패턴 추출
- HTML 태그 제거 및 변환
- 개인정보 마스킹 처리
정규식 학습
- 패턴별 한글 설명 제공
- 10가지 실전 예제 패턴
- 그룹 캡처 시각적 확인
활용 팁
자주 사용하는 10가지 패턴이 미리 준비되어 있습니다. 클릭 한 번으로 바로 테스트해보세요.
$1, $2로 캡처 그룹을 참조하여 문자열을 원하는 형태로 변환할 수 있습니다.
복잡한 정규식도 각 토큰별로 한글 설명을 제공하여 쉽게 이해할 수 있습니다.
최근 사용한 패턴이 자동으로 저장되어 나중에 빠르게 불러올 수 있습니다.
정규식(Regex) 테스터란 무엇인가요?
정규식(Regular Expression, Regex) 테스터는 정규식 패턴을 입력하고 텍스트에서 매칭 결과를 실시간으로 확인할 수 있는 온라인 도구입니다.
개발자, QA 엔지니어, 데이터 분석가 등 텍스트 패턴 매칭이 필요한 모든 사용자에게 유용합니다.
정규식은 문자열 검색, 유효성 검증, 치환 작업에서 필수적으로 사용되는 강력한 도구입니다.
하지만 문법이 복잡하고 직관적이지 않아 작성 과정에서 실수하기 쉽습니다.
이 테스터를 사용하면 패턴을 작성하면서 바로 결과를 확인하고, 한글로 된 설명까지 볼 수 있어 정규식 작성 효율을 크게 높일 수 있습니다.
이런 분들에게 유용합니다
- • 입력 폼 유효성 검증을 구현하는 프론트엔드 개발자
- • 로그 파일에서 특정 패턴을 추출하는 백엔드 개발자
- • API 응답 데이터를 파싱하는 데이터 엔지니어
- • 테스트 케이스를 작성하는 QA 엔지니어
- • 정규식을 처음 배우는 프로그래밍 입문자
- • 텍스트 데이터 정제가 필요한 데이터 분석가
- • 서버 설정 파일을 관리하는 시스템 관리자
정규식 기본 문법
1. 문자 매칭
정규식의 가장 기본은 특정 문자나 문자열을 매칭하는 것입니다.
일반 문자는 그대로 사용하면 해당 문자를 찾습니다.
- •
.(점): 줄바꿈을 제외한 아무 문자 1개를 매칭합니다.
예:a.c는 "abc", "aXc", "a1c" 등을 매칭합니다. - •
\d: 숫자(0~9)를 매칭합니다.\D는 숫자가 아닌 문자를 매칭합니다. - •
\w: 단어 문자(알파벳, 숫자, 밑줄)를 매칭합니다.\W는 단어 문자가 아닌 문자를 매칭합니다. - •
\s: 공백 문자(스페이스, 탭, 줄바꿈)를 매칭합니다.\S는 공백이 아닌 문자를 매칭합니다.
2. 수량자 (Quantifiers)
수량자는 앞의 패턴이 몇 번 반복되는지를 지정합니다.
정규식에서 가장 자주 사용되는 요소 중 하나입니다.
- •
*: 0회 이상 반복합니다.
예:ab*c는 "ac", "abc", "abbc", "abbbc" 등을 매칭합니다. - •
+: 1회 이상 반복합니다.
예:ab+c는 "abc", "abbc"를 매칭하지만 "ac"는 매칭하지 않습니다. - •
?: 0회 또는 1회만 매칭합니다.
예:colou?r는 "color"와 "colour" 모두를 매칭합니다. - •
{n}: 정확히 n회 반복합니다.
예:\d{3}는 정확히 3자리 숫자를 매칭합니다. - •
{n,m}: n회 이상 m회 이하 반복합니다.
예:\d{2,4}는 2~4자리 숫자를 매칭합니다.
3. 앵커와 경계
앵커는 문자가 아닌 위치를 지정합니다.
문자열의 시작, 끝, 단어 경계 등을 표현할 수 있습니다.
- •
^: 문자열(또는 줄)의 시작 위치를 매칭합니다.
예:^Hello는 "Hello World"는 매칭하지만 "Say Hello"는 매칭하지 않습니다. - •
$: 문자열(또는 줄)의 끝 위치를 매칭합니다.
예:World$는 "Hello World"는 매칭하지만 "World Cup"은 매칭하지 않습니다. - •
\b: 단어 경계를 매칭합니다.
예:\bcat\b는 "cat"은 매칭하지만 "category"는 매칭하지 않습니다.
4. 그룹과 캡처
괄호를 사용하여 패턴을 그룹화하고, 매칭된 부분을 캡처할 수 있습니다.
캡처된 그룹은 치환이나 후방참조에서 활용할 수 있습니다.
- •
(pattern): 캡처 그룹을 만듭니다.
치환 시$1,$2등으로 참조할 수 있습니다. - •
(?:pattern): 비캡처 그룹을 만듭니다.
그룹화는 하지만 캡처하지 않아 성능이 더 좋습니다. - •
(?<name>pattern): 명명된 캡처 그룹을 만듭니다.
이름으로 참조할 수 있어 가독성이 높습니다. - •
(?=pattern): 긍정 전방탐색입니다.
해당 패턴이 뒤따르는 위치를 매칭하지만 패턴 자체는 소비하지 않습니다.
5. 문자 클래스
대괄호 안에 문자를 나열하여 해당 문자 중 하나를 매칭하는 패턴을 만들 수 있습니다.
범위 지정과 부정(제외) 기능도 사용할 수 있습니다.
- •
[abc]: a, b, c 중 하나를 매칭합니다. - •
[a-z]: a부터 z까지 소문자 알파벳을 매칭합니다. - •
[0-9]: 0부터 9까지 숫자를 매칭합니다.\d와 동일한 효과입니다. - •
[^abc]: a, b, c를 제외한 문자를 매칭합니다.
대괄호 안의^는 부정을 의미합니다. - •
[가-힣]: 한글 음절을 매칭합니다.
한국어 텍스트 처리에 자주 사용됩니다.
사용 방법
1단계: 정규식 패턴 입력
상단 입력창에 정규식 패턴을 입력합니다.
슬래시(/)는 자동으로 표시되므로 패턴만 입력하면 됩니다.
입력과 동시에 유효성이 검증되며, 잘못된 패턴은 빨간색으로 표시됩니다.
2단계: 플래그 설정
필요에 따라 플래그를 활성화합니다.
g(전체 매칭)는 기본적으로 켜져 있으며, i(대소문자 무시), m(여러 줄 모드) 등을 추가로 설정할 수 있습니다.
각 플래그에 마우스를 올리면 설명이 표시됩니다.
3단계: 테스트 텍스트 입력
매칭을 확인할 텍스트를 입력합니다.
여러 줄 텍스트를 입력하여 다양한 케이스를 한 번에 테스트할 수 있습니다.
패턴 라이브러리에서 샘플을 선택하면 테스트 텍스트가 자동으로 입력됩니다.
4단계: 결과 확인
매칭된 부분이 노란색으로 하이라이트되어 표시됩니다.
각 매칭의 시작/끝 인덱스, 캡처 그룹 정보를 상세하게 확인할 수 있습니다.
치환 탭에서는 매칭된 부분을 다른 문자열로 바꾼 결과를 미리 볼 수 있습니다.
주요 기능
실시간 매칭
패턴을 입력하는 즉시 매칭 결과가 표시됩니다.
별도의 버튼 클릭 없이 실시간으로 결과를 확인할 수 있어 빠르게 패턴을 수정하고 테스트할 수 있습니다.
매칭된 모든 영역은 노란색 하이라이트로 표시되며, 각 매칭의 시작/끝 인덱스를 포함한 상세 정보를 확인할 수 있습니다.
캡처 그룹 시각화
캡처 그룹은 색상별로 구분되어 직관적으로 확인할 수 있습니다.
명명된 그룹(?<name>)도 지원하며, 각 그룹의 값을 개별적으로 복사할 수 있습니다.
캡처 그룹 활용 예시
패턴: (\d{4})-(\d{2})-(\d{2})
텍스트: "2026-03-03"
Group 1: "2026" (연도), Group 2: "03" (월), Group 3: "03" (일)
치환(Replace) 테스트
매칭된 텍스트를 다른 문자열로 치환하는 테스트를 할 수 있습니다.$1, $2 등으로 캡처 그룹을 참조하여 유연한 텍스트 변환이 가능합니다.
치환 활용 예시
패턴: (\d{6})-?([1-4])\d{6}
치환: $1-$2******
결과: "900101-1234567" → "900101-1******" (주민등록번호 마스킹)
패턴 한글 설명
입력한 정규식의 각 토큰을 한글로 설명해줍니다.
복잡한 패턴도 토큰별로 분해하여 의미를 쉽게 파악할 수 있습니다.
정규식을 처음 접하는 분이나, 다른 사람이 작성한 패턴을 분석할 때 유용합니다.
실전 활용 시나리오
웹 개발에서의 활용
회원가입 폼에서 이메일, 비밀번호, 전화번호 형식을 검증할 때 정규식을 사용합니다.
이 테스터에서 패턴을 먼저 검증한 후 코드에 적용하면 버그를 줄일 수 있습니다.
JavaScript 적용 예시
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
if (!emailRegex.test(userInput)) {
alert('올바른 이메일 주소를 입력해주세요.');
}로그 분석
서버 로그에서 에러 메시지, IP 주소, 타임스탬프 등을 추출할 때 정규식을 활용합니다.
복잡한 로그 형식에서 필요한 정보만 정확하게 뽑아낼 수 있습니다.
예를 들어 \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} 패턴으로 로그에서 모든 IP 주소를 추출할 수 있습니다.
개인정보 마스킹
주민등록번호, 카드번호, 전화번호 등 개인정보를 마스킹 처리할 때 정규식이 필수적입니다.
치환 기능을 활용하면 패턴에 맞는 데이터를 자동으로 마스킹할 수 있습니다.
한국 특화 패턴으로 주민등록번호 마스킹, 휴대전화 번호 추출 등을 바로 테스트해볼 수 있습니다.
플래그(Flag) 상세 가이드
- g (Global): 기본적으로 정규식은 첫 번째 매칭만 반환합니다.
g 플래그를 켜면 텍스트에서 패턴에 매칭되는 모든 위치를 찾습니다. - i (Case Insensitive): 대소문자를 구분하지 않고 매칭합니다.
예를 들어/hello/i는 "Hello", "HELLO", "hElLo" 모두를 매칭합니다. - m (Multiline): 여러 줄 모드를 활성화합니다.
^와$가 전체 문자열이 아닌 각 줄의 시작과 끝에 매칭됩니다.
줄 단위로 패턴을 검사할 때 유용합니다. - s (DotAll): 기본적으로
.은 줄바꿈(\n)을 매칭하지 않습니다.
s 플래그를 켜면.이 줄바꿈을 포함한 모든 문자를 매칭합니다. - u (Unicode): 유니코드 전체 지원을 활성화합니다.
한글, 이모지 등 유니코드 문자를 올바르게 처리하려면 이 플래그를 사용하세요. - y (Sticky): lastIndex 위치에서만 매칭을 시도합니다.
g 플래그와 동시에 사용할 수 없으며, 순차적 파싱에 유용합니다.
자주 묻는 질문 (FAQ)
Q. 정규식에서 특수문자를 매칭하려면 어떻게 하나요?
A. 정규식에서 특별한 의미를 가진 문자(예: ., *, +, ?, (, ) 등)를 리터럴 문자로 매칭하려면 백슬래시(\)로 이스케이프해야 합니다.
예를 들어 마침표를 찾으려면 \., 괄호를 찾으려면 \(와 \)를 사용합니다.
Q. 한글을 매칭하는 정규식은 어떻게 작성하나요?
A. 한글 음절은 [가-힣] 범위로 매칭할 수 있습니다.
자음만 매칭하려면 [ㄱ-ㅎ], 모음만 매칭하려면 [ㅏ-ㅣ]를 사용합니다.
한글 이름(2~5자)을 검증하려면 ^[가-힣]{2,5}$ 패턴을 사용하세요.
Q. 캡처 그룹과 비캡처 그룹의 차이는 무엇인가요?
A. 캡처 그룹 (pattern)은 매칭된 값을 저장하여 $1, $2 등으로 참조할 수 있습니다.
비캡처 그룹 (?:pattern)은 패턴을 그룹화만 하고 값을 저장하지 않습니다.
치환이나 참조가 필요 없다면 비캡처 그룹을 사용하는 것이 성능상 유리합니다.
Q. 탐욕적(Greedy) 매칭과 게으른(Lazy) 매칭의 차이는 무엇인가요?
A. 기본적으로 수량자(*, +, ?)는 탐욕적으로 동작하여 가능한 한 많은 문자를 매칭합니다.
수량자 뒤에 ?를 붙이면(*?, +?, ??) 게으른 매칭이 되어 가능한 한 적은 문자를 매칭합니다.
예: <.*>는 "<div>text</div>" 전체를 매칭하지만, <.*?>는 "<div>"만 매칭합니다.
Q. 정규식 테스트 결과를 코드에 어떻게 적용하나요?
A. 테스터에서 원하는 패턴이 정확히 매칭되는 것을 확인한 후, "정규식 복사" 버튼으로 패턴을 복사하세요.
JavaScript에서는 new RegExp(pattern, flags) 또는 리터럴 /pattern/flags로 사용할 수 있습니다.
Python에서는 re.compile(pattern)으로 사용합니다.
정규식 작성 팁
- 단순한 패턴부터 시작하세요: 복잡한 패턴을 한 번에 작성하지 마세요.
기본 매칭부터 시작해서 조건을 하나씩 추가하면 실수를 줄일 수 있습니다. - 패턴 라이브러리를 활용하세요: 이메일, 전화번호, URL 등 자주 사용하는 패턴은 이미 검증된 것을 사용하는 것이 안전합니다.
직접 처음부터 만들면 엣지 케이스를 놓칠 수 있습니다. - 다양한 테스트 케이스를 준비하세요: 정상적인 입력뿐만 아니라 경계 케이스, 잘못된 입력도 테스트하세요.
빈 문자열, 특수문자, 줄바꿈 등을 포함한 다양한 상황을 확인해야 합니다. - 설명 탭을 활용하세요: 작성한 패턴이 의도대로 동작하는지 확인하려면 설명 탭에서 각 토큰의 의미를 확인하세요.
특히 다른 사람이 작성한 정규식을 분석할 때 유용합니다. - 성능을 고려하세요: 중첩된 수량자(예:
(a+)+)는 재앙적 역추적(Catastrophic Backtracking)을 일으킬 수 있습니다.
가능하면 비캡처 그룹과 원자 그룹을 사용하여 성능을 최적화하세요.
지금 바로 정규식을 테스트해보세요!
패턴 라이브러리에서 자주 쓰는 패턴을 선택하거나 직접 입력하여 실시간으로 결과를 확인하세요.
최근 사용한 패턴은 자동으로 저장되며, 언제든 다시 불러올 수 있습니다.