정규식 테스터
🔢 계산/생성정규표현식(Regex) 패턴을 작성하고 텍스트에 대해 실시간 매칭을 테스트합니다.
자주 사용하는 패턴
\d- 숫자,\w- 단어 문자,\s- 공백+- 1개 이상,*- 0개 이상,?- 0 또는 1개^- 시작,$- 끝()- 캡처 그룹,(?:)- 비캡처 그룹
🔍 정규식 테스터란?
정규표현식(Regular Expression)은 문자열에서 특정 패턴을 찾고 조작하는 강력한 도구입니다. 이 테스터는 정규식을 실시간으로 테스트하며, 매칭 결과를 하이라이트로 시각화합니다.캡처 그룹, 플래그 설정, 문자열 치환까지 한 곳에서 확인할 수 있습니다.이메일, URL, 전화번호 등 자주 쓰는 패턴 프리셋으로 빠르게 시작할 수 있습니다.
💡 핵심 포인트
정규식은 코드에 넣기 전 꼭 테스트하세요. 작은 실수 하나가 모든 입력을 잘못 처리할 수 있어요.
📊 자주 사용하는 정규식 패턴
| 목적 | 패턴 | 설명 |
|---|---|---|
| 이메일 | [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} | 기본 이메일 형식 |
| URL | https?://[^\s]+ | http/https URL |
| 숫자 | \d+ | 1개 이상 숫자 |
| 공백 제거 | ^\s+|\s+$ | 앞뒤 공백 |
📖 정규식 문법 치트시트
정규식은 기호가 전부입니다. 아래 표만 손에 익으면 대부분의 패턴을 읽고 쓸 수 있습니다.
| 문자 클래스 | 의미 | 예시 |
|---|---|---|
| . | 줄바꿈 제외 모든 문자 | a.c → abc, a1c |
| \d | 숫자 (0-9) | \d\d → 42 |
| \w | 영숫자와 밑줄 | \w+ → user_1 |
| \s | 공백, 탭, 줄바꿈 | a\sb → a b |
| [abc] | a, b, c 중 하나 | [aeiou] → 모음 |
| [^abc] | a, b, c 가 아닌 문자 | [^0-9] → 숫자 아님 |
| 수량자 · 위치 | 의미 | 예시 |
|---|---|---|
| * | 0개 이상 | ab*c → ac, abbc |
| + | 1개 이상 | ab+c → abc (ac 불가) |
| ? | 0개 또는 1개 | colou?r |
| {2,4} | 2개 이상 4개 이하 | \d{2,4} → 12, 1234 |
| ^ | 문자열(줄) 시작 | ^Hello |
| $ | 문자열(줄) 끝 | \.com$ |
| | | 또는 | cat|dog |
| 플래그 | 의미 | 없으면 생기는 일 |
|---|---|---|
| g | 전역 검색 | 첫 번째 일치만 찾음 |
| i | 대소문자 무시 | Apple과 apple을 구분 |
| m | 여러 줄 모드 | ^ $가 전체 문자열에만 적용 |
| s | . 이 줄바꿈도 포함 | . 이 줄바꿈을 건너뜀 |
⚠️ 정규식에서 자주 터지는 함정
- 탐욕적 매칭 —
<.+>는<b>글자</b>전체를 한 덩어리로 잡습니다. 태그 하나만 잡으려면<.+?>처럼?를 붙이세요. - 문자 클래스 안에서는 규칙이 다름 — 대괄호 안의
.은 그냥 마침표이고,-는 위치에 따라 범위 기호가 됩니다. - g 플래그와 상태 — 자바스크립트에서 g가 붙은 정규식 객체는 마지막 검색 위치를 기억합니다. 같은 객체를 반복 사용하면 결과가 들쭉날쭉해집니다.
- 이메일 검증 과신 금지 — 정규식으로 완벽한 이메일 검증은 사실상 불가능합니다. 형식만 가볍게 거르고 실제 유효성은 인증 메일로 확인하는 편이 안전합니다.
- 백트래킹 폭발 —
(a+)+b처럼 중첩된 수량자는 입력이 조금만 길어져도 처리 시간이 급격히 늘어날 수 있습니다.
💡 정규식 작성 팁
- g 플래그: 전역 검색, 모든 일치 항목 찾기
- i 플래그: 대소문자 구분 없이 검색
- 캡처 그룹 (): 일치 부분 추출, $1, $2로 참조
- 비탐욕적 *?: 가능한 적은 문자 매칭
자주 묻는 질문
정규식에서 특수문자를 어떻게 찾나요?▼
\로 이스케이프합니다. 예: \. (마침표), \? (물음표), \[ (대괄호). \는 두 번 (\\)으로 이스케이프합니다.
캡처 그룹과 비캡처 그룹의 차이는?▼
캡처 그룹 ()은 매칭된 부분을 저장해 $1, $2로 참조합니다. 비캡처 그룹 (?:)은 그룹화만 하고 저장하지 않습니다.
왜 패턴이 작동하지 않나요?▼
플래그를 확인하세요. g가 없으면 첫 번째만 매칭됩니다. 또한 JavaScript 정규식과 다른 언어의 정규식은 약간 다를 수 있습니다.
.+ 를 썼더니 너무 많이 잡혀요.▼
기본 동작이 탐욕적(greedy)이라 가능한 길게 매칭하기 때문입니다. 뒤에 ?를 붙여 .+? 로 바꾸면 가장 짧게 매칭하는 비탐욕 모드가 됩니다.
한글도 매칭할 수 있나요?▼
가능합니다. [가-힣]으로 완성형 한글을, [ㄱ-ㅎㅏ-ㅣ]로 자음·모음을 매칭할 수 있습니다. \w는 한글을 포함하지 않으니 주의하세요.
입력한 텍스트가 서버로 전송되나요?▼
아니요. 정규식 실행과 하이라이트 모두 브라우저에서 처리되며 패턴이나 테스트 문자열이 서버로 전송되지 않습니다.