자주 사용하는 패턴
.모든 문자 (줄바꿈 제외)\d숫자 [0-9]\w단어 문자 [a-zA-Z0-9_]\s공백 문자^문자열 시작$문자열 끝*0회 이상 반복+1회 이상 반복?0 또는 1회{n}정확히 n회{n,m}n~m회 반복[abc]문자 클래스[^abc]부정 문자 클래스()캡처 그룹(?:)비캡처 그룹|OR 연산주요 메타문자 한눈에 보기
정규식 테스터는 정규표현식 패턴을 실시간으로 테스트하고 검증하는 도구입니다.
🎯 기본 사용법
• 정규표현식 입력란에 테스트할 패턴을 입력하세요
• 테스트 문자열 영역에 검증할 텍스트를 입력하세요
• 입력과 동시에 실시간으로 매칭 결과가 표시됩니다
• 매칭된 부분은 하이라이트로 강조됩니다
🚩 플래그 옵션
• g (global): 문자열 전체에서 모든 매칭 찾기
• i (case insensitive): 대소문자 구분하지 않음
• m (multiline): 여러 줄 모드 (^와 $가 각 줄의 시작/끝에 매칭)
• s (dotall): . 문자가 줄바꿈도 매칭
📊 매칭 결과
• 매칭된 텍스트가 노란색으로 하이라이트됩니다
• 매칭 개수와 위치(인덱스)가 표시됩니다
• 캡처 그룹이 있는 경우 그룹별로 분리되어 표시됩니다
• 각 매칭의 상세 정보를 확인할 수 있습니다
⚡ 추가 기능
• 자주 사용하는 패턴: 이메일, URL, 전화번호 등 사전 정의된 패턴 적용
• 치트시트: 정규식 문법 참조 가이드
• 패턴 복사: 작성한 정규식을 플래그와 함께 복사
정규 표현식(Regular Expression, Regex)은 문자열에서 특정 패턴을 찾고 매칭하는 강력한 도구입니다.
📚 기본 메타 문자
• . (점): 줄바꿈을 제외한 모든 단일 문자와 매칭
• ^ (캐럿): 문자열 또는 줄의 시작
• $ (달러): 문자열 또는 줄의 끝
• * (별표): 앞의 문자가 0번 이상 반복
• + (플러스): 앞의 문자가 1번 이상 반복
• ? (물음표): 앞의 문자가 0번 또는 1번
🔤 문자 클래스
• \d: 숫자 [0-9]
• \w: 단어 문자 [a-zA-Z0-9_]
• \s: 공백 문자 (스페이스, 탭, 줄바꿈)
• \D: 숫자가 아닌 것
• \W: 단어 문자가 아닌 것
• \S: 공백이 아닌 것
📏 수량자 (Quantifiers)
• {n}: 정확히 n번 반복
• {n,}: n번 이상 반복
• {n,m}: n번 이상 m번 이하 반복
• *: {0,}와 동일
• +: {1,}와 동일
• ?: {0,1}와 동일
🎯 그룹과 범위
• [abc]: a, b, c 중 하나
• [^abc]: a, b, c가 아닌 것
• [a-z]: a부터 z까지
• (x): 캡처 그룹 - 매칭된 내용을 기억
• (?:x): 비캡처 그룹 - 매칭만 하고 기억하지 않음
• x|y: x 또는 y
🔍 특수 구문
• \b: 단어 경계 (word boundary)
• \B: 단어 경계가 아닌 곳
• (?=x): 긍정 전방탐색 (x가 뒤따르는 위치)
• (?!x): 부정 전방탐색 (x가 뒤따르지 않는 위치)
💡 이스케이프
특수 문자를 리터럴로 사용하려면 백슬래시(\)를 앞에 붙이세요:
\., \*, \+, \?, \[, \], \(, \), \{, \}, \^, \$, \|, \\
💡 실무에서 자주 사용하는 정규식 패턴 모음
📧 이메일 검증
• 기본: [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
• 엄격: ^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$
🌐 URL 검증
• HTTP/HTTPS: https?:\/\/[\w\-.]+(:\d+)?(\/[\w\-./?%&=]*)?
• 도메인만: ^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$
📱 전화번호 (한국)
• 하이픈 포함: 0\d{1,2}-\d{3,4}-\d{4}
• 하이픈 선택: 0\d{1,2}-?\d{3,4}-?\d{4}
• 휴대폰만: 01[016789]-\d{3,4}-\d{4}
💳 신용카드 번호
• Visa: ^4[0-9]{12}(?:[0-9]{3})?$
• MasterCard: ^5[1-5][0-9]{14}$
• AmEx: ^3[47][0-9]{13}$
🔢 숫자 패턴
• 정수: ^-?\d+$
• 양의 정수: ^\d+$
• 실수: ^-?\d+(\.\d+)?$
• 천 단위 콤마: ^\d{1,3}(,\d{3})*$
📅 날짜 형식
• YYYY-MM-DD: ^\d{4}-\d{2}-\d{2}$
• MM/DD/YYYY: ^(0[1-9]|1[0-2])\/(0[1-9]|[12][0-9]|3[01])\/\d{4}$
• DD.MM.YYYY: ^(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[0-2])\.\d{4}$
🔐 비밀번호 강도
• 최소 8자, 대소문자+숫자: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$
• 특수문자 포함: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&]).{8,}$
🌏 IP 주소
• IPv4: ^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
• IPv6: ^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$
🏷️ HTML 태그
• 태그 제거: <[^>]+>
• 특정 태그: <(div|span|p)\b[^>]*>.*?<\/\1>
🔤 문자 종류
• 한글만: ^[가-힣]+$
• 영문만: ^[a-zA-Z]+$
• 영문+숫자: ^[a-zA-Z0-9]+$
• 공백 제거: \s+
💼 비즈니스 번호
• 사업자등록번호: ^\d{3}-\d{2}-\d{5}$
• 주민등록번호: ^\d{6}-[1-4]\d{6}$