정규표현식 테스트 도구

이 도구에 대하여

입력 텍스트에 정규표현식을 실행하고 일치 구간을 확인한다. 모든 처리는 브라우저에서 이루어지며 데이터는 전송되지 않는다.

테스트 실행

사용 방법

  1. 정규표현식과 플래그를 입력한다.
  2. 입력 텍스트에서 테스트 실행을 누르면 일치 구간이 표시된다.

예시 (바로 활용 가능한 정규표현식 모음 / 범주별 100개 이상)

기본 · 공백 · 줄
  • 빈 행만: ^\s*$ (m)
  • 앞쪽 공백: ^\s+ (m)
  • 뒤쪽 공백: \s+$ (m)
  • 앞·뒤 공백 (트리밍 대상): ^\s+|\s+$ (m)
  • 연속 공백 (하나로 압축): \s{2,}
  • 표시 문자 (공백 제외): \S+
  • ASCII 문자만: ^[\x00-\x7F]+$
  • 인쇄 가능한 ASCII: ^[\x20-\x7E]+$
  • 비 ASCII 문자를 포함한 줄: [^\x00-\x7F]
  • 단어 경계: \bword\b
숫자 · 금액
  • 정수 (부호 선택): ^-?\d+$
  • 소수 (부호 선택): ^-?\d*\.\d+$
  • 수치 (정수 또는 소수): ^-?(?:\d+|\d*\.\d+)$
  • 천 단위 구분 (예: 1,234,567): ^\d{1,3}(?:,\d{3})+$
  • 금액 (¥ 또는 $ + 천 단위 구분 허용): ^(?:¥|\$)\s?\d{1,3}(?:,\d{3})*(?:\.\d{2})?$
  • 퍼센트: ^\d{1,3}(?:\.\d+)?%
  • 지수 표기: ^[+-]?(?:\d+\.?\d*|\.\d+)[eE][+-]?\d+$
  • 16진수: ^(?:0x)?[0-9A-Fa-f]+$
  • 2진수: ^[01]+$
  • 8진수: ^[0-7]+$
날짜 · 시각
  • 날짜 YYYY-MM-DD (형식만 검증): ^\d{4}-\d{2}-\d{2}$
  • 시각 HH:MM (24시간제): ^(?:[01]\d|2[0-3]):[0-5]\d$
  • 시각 HH:MM:SS (24시간제): ^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$
  • ISO8601 일시 (간이): ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$
  • 연월 (YYYY/MM): ^\d{4}/(0[1-9]|1[0-2])$
  • 일본 연호 (레이와 연도, 간이): ^令和\d+年(?:\d+月(?:\d+日)?)?$ (u)
  • 요일 (영문 3글자): ^(Mon|Tue|Wed|Thu|Fri|Sat|Sun)$
  • 시간대 (±HH:MM): ^[+-](?:[01]\d|2[0-3]):[0-5]\d$
연락처 · 주소 (간이)
  • 일본 우편번호: ^\d{3}-\d{4}$
  • 일본 전화 (0x-xxxx-xxxx 간이): ^0\d{1,4}-\d{1,4}-\d{4}$
  • 국제 전화 (+국가번호, 공백 허용 간이): ^\+\d{1,3}\s?\d+(?:[\s-]\d+)*$
  • 도도부현 이름 (한자): ^(?:東京都|北海道|(?:京都|大阪)府|.+県)$ (u)
  • 이메일 (일반 간이): ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$
  • 사용자명 (3–16자 영문/숫자/_): ^[A-Za-z0-9_]{3,16}$
  • 비밀번호 강도 (대/소문자·숫자·기호 최소 1개, 8자 이상): ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W_]).{8,}$
Web / URL / HTTP
  • URL (http/https 간이 검사): https?:\/\/\S+
  • 도메인 (Punycode 미지원 간이): ^(?:[A-Za-z0-9-]+\.)+[A-Za-z]{2,}$
  • 서브도메인을 포함한 호스트: ^(?:[A-Za-z0-9-]+\.)*[A-Za-z0-9-]+\.[A-Za-z]{2,}$
  • 쿼리 매개변수 key=value: [?&]([A-Za-z0-9._~-]+)=([^&#]+)
  • 프래그먼트: #\w[\w-]*
  • 파일 확장자 (.png|.jpg|.gif 등): \.(?:png|jpe?g|gif|webp|svg)$ (i)
  • HTTP 메서드: ^(GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS)$
  • HTTP 헤더 행: ^[A-Za-z0-9-]+:\s?.+$ (m)
  • Basic 인증 헤더: ^Basic\s+[A-Za-z0-9+/=]+$
  • Bearer 토큰 헤더: ^Bearer\s+[A-Za-z0-9\-\._~\+\/]+=*$
네트워크 (IP/MAC/CIDR/UUID/JWT 등)
  • IPv4 (0–255 엄격): \b(?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\b
  • IPv6 (압축 지원 간이): \b(?:[A-Fa-f0-9]{1,4}:){2,7}[A-Fa-f0-9]{1,4}\b
  • MAC 주소 (: 구분): ^(?:[0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$
  • MAC 주소 (- 구분): ^(?:[0-9A-Fa-f]{2}-){5}[0-9A-Fa-f]{2}$
  • CIDR (IPv4/길이 0–32): ^\b(?:\d{1,3}\.){3}\d{1,3}\/(?:[0-9]|[12]\d|3[0-2])\b$
  • UUID v4: ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ (i)
  • GUID (대소문자 구분 없음): ^{?[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}}?$ (i)
  • Base64 (패딩 지원): ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
  • JWT (세 구간 구분): ^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+$
  • SSH 공개키 (ssh-rsa/ed25519): ^ssh-(?:rsa|ed25519)\s+[A-Za-z0-9+/=]+(?:\s.+)?$
파일 · 경로 · 버전
  • Windows 절대 경로: ^[A-Za-z]:\\(?:[^\\/:*?"<>|\r\n]+\\)*[^\\/:*?"<>|\r\n]*$
  • UNIX 절대 경로: ^\/(?:[^\/\0]+\/)*[^\/\0]*$
  • 안전한 파일명 (영숫자 . _ -만): ^[A-Za-z0-9._-]+$
  • 확장자 추출: \.([A-Za-z0-9]+)$
  • Git 해시 (7–40자): ^[0-9a-f]{7,40}$
  • SemVer: ^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$
  • Docker 이미지:태그: ^[a-z0-9]+(?:[._-][a-z0-9]+)*(?::[\w.-]+)?$
  • NPM 패키지 이름 (간이): ^(?:@[\w-]+\/)?[\w.-]+$
  • URL 슬러그: ^[a-z0-9]+(?:-[a-z0-9]+)*$
웹 프런트 (HTML/CSS/색)
  • HTML 태그 (시작/종료 매칭 간이): <([A-Za-z][A-Za-z0-9]*)\b[^>]*>([\s\S]*?)<\/\1>
  • HTML 주석: <!--[\s\S]*?-->
  • href 속성값: href\s*=\s*"(.*?)" (i)
  • CSS 색 (#RGB/#RRGGBB): ^#(?:[0-9A-Fa-f]{3}){1,2}$
  • CSS rgb(): ^rgb\(\s*(?:[01]?\d?\d|2[0-4]\d|25[0-5])\s*,\s*(?:[01]?\d?\d|2[0-4]\d|25[0-5])\s*,\s*(?:[01]?\d?\d|2[0-4]\d|25[0-5])\s*\)$
  • CSS hsl(): ^hsl\(\s*(?:\d|[1-2]\d{2}|3[0-5]\d)\s*,\s*(?:\d|[1-9]\d)%\s*,\s*(?:\d|[1-9]\d)%\s*\)$
  • CSS 단위 (px, em 등): ^-?\d+(?:\.\d+)?(?:px|em|rem|vh|vw|%)$
문자열 · 구문 (프로그래밍 단편)
  • JavaScript 식별자 (간이): ^[A-Za-z_$][A-Za-z0-9_$]*$
  • JavaScript // 주석 행: ^\s*\/\/.*$ (m)
  • JavaScript 블록 주석: \/\*[\s\S]*?\*\/
  • 따옴표 문자열 (이스케이프 간이): "(?:[^"\\]|\\.)*"
  • 작은따옴표 문자열: '(?:[^'\\]|\\.)*'
  • 템플릿 리터럴 (간이): `(?:[^`\\]|\\.|\\${[^}]*})*`
  • JSON 키: "([A-Za-z0-9_]+)"\s*:
  • CSV 셀 (따옴표 처리 간이): (?:"(?:[^"]|"")*"|[^,\r\n]*)
  • 메일 본문의 URL 추출: https?:\/\/[^\s)>"]+
보안 / 입력 검증 (주의)
  • 신용카드 (Luhn 별도, 간이): \b(?:\d[ -]*?){13,19}\b
  • VISA (4로 시작, 13/16/19자리): \b4\d{12}(?:\d{3})?(?:\d{3})?\b
  • Mastercard (51–55 / 2221–2720): \b(?:5[1-5]\d{14}|2(?:2[2-9]\d{2}|[3-6]\d{3}|7[01]\d{2}|720\d{2})\d{10})\b
  • 일본 마이넘버 (형식만, 검증 없음): ^\d{12}$
  • 우편번호 + 주소 행 (간이): ^\d{3}-\d{4}\s+.+$
  • XSS용 <script> 태그 검출 (간이): <\s*script\b[^>]*>[\s\S]*?<\s*\/\s*script\s*>
  • SQL 유사 키워드 (간이): \b(SELECT|INSERT|UPDATE|DELETE|DROP|ALTER|CREATE)\b (i)

※ 개인정보나 기밀 정보를 추출·검증할 때는 반드시 관련 법규와 사내 규정을 확인해 달라.

로그 · 포맷
  • Apache/Nginx CLF (간이): ^(\S+)\s+(\S+)\s+(\S+)\s+\[([^\]]+)\]\s+"([^"]+)"\s+(\d{3})\s+(\d+|-)
  • ISO8601 타임스탬프 추출: \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})
  • JSON 라인 (1행=1 JSON): ^\{.*\}$ (m)
  • UUID 추출: [0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12} (i)
  • IP 추출 (IPv4 간이): \b(?:\d{1,3}\.){3}\d{1,3}\b
Markdown
  • 헤더 (#~######): ^(#{1,6})\s+(.+)$ (m)
  • 링크: \[([^\]]+)\]\(([^)]+)\)
  • 이미지: !\[([^\]]*)\]\(([^)]+)\)
  • 인라인 코드: `([^`]+)`
  • 코드 블록 (```…``` 간이): ```[\s\S]*?```
  • 글머리 기호 (- * +): ^\s*[-*+]\s+.+$ (m)
  • 인용 >: ^\s*>\s+.+$ (m)
일본어 표기 · 문자 종류 (Unicode, u 플래그 권장)
  • 히라가나만: ^[\u3041-\u3096]+$ (u)
  • 가타카나만: ^[\u30A1-\u30FA\u30FC]+$ (u)
  • 반각 가타카나만: ^[\uFF66-\uFF9D\uFF70]+$ (u)
  • 한자를 포함: [\u4E00-\u9FFF] (u)
  • 전각 문자만: ^[^\x00-\x7F]+$
  • 전각 영문/숫자: ^[\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A]+$ (u)
  • 우편번호 (전각 숫자 대응, 간이): ^[0-9\d]{3}-[0-9\d]{4}$ (u)
  • 후리가나 (전각 가나): ^[\u30A1-\u30FA\u30FC\s]+$ (u)
텍스트 정형 · 추출 유틸리티
  • 앞의 번호 "1. " 제거: ^\s*\d+\.\s* (m)
  • 글머리 접두사 제거: ^\s*(?:[-*+]|•|\d+\.)\s* (m)
  • 괄호 안 추출 (둥근괄호): \(([^)]*)\)
  • 이중 따옴표 안 추출: "([^"\\]|\\.)*"
  • 일본 엔 금액 "¥123,456" 추출: ¥\s?\d{1,3}(?:,\d{3})*
  • 메일 도메인 추출: @([A-Za-z0-9.-]+\.[A-Za-z]{2,})
  • HTML 태그 제거 (간이): <[^>]+>
  • 중복 공백 → 1개: \s{2,}
기타 유용
  • 일본 차량 번호 (초간이): ^[\u3041-\u3096\u30A1-\u30FA\u4E00-\u9FFF]{1,2}\s?\d{3,4}$ (u)
  • YouTube 동영상 ID: (?<=v=|youtu\.be\/)[A-Za-z0-9_-]{11}
  • Twitter/X 사용자 @handle: @[A-Za-z0-9_]{1,15}
  • Slack 채널: #[a-z0-9_-]{1,80}
  • 색 이름 (CSS 키워드 일부 예시): \b(?:red|green|blue|black|white|gray|silver|maroon)\b (i)
  • 대괄호〔…〕 주석 추출: [([^]]*)]|【([^】]*)】|〔([^〕]*)〕 (u)
  • 반각 가나 감지: [\uFF61-\uFF9F] (u)
  • 영단어 (하이픈 포함): \b[A-Za-z]+(?:-[A-Za-z]+)*\b
  • 메일 본문의 주문 번호 (예: #12345): #\d{4,}
  • 일본 역 이름 (끝이 "駅"): .+駅\b (u)

※ 위 목록은 자주 쓰이는 정규표현식을 바로 붙여 쓸 수 있도록 정리한 실무 지향 간이판이다. 윤년·국제화 도메인·완전한 HTML 파싱 등 정밀 검증이 필요하면 전용 로직이나 라이브러리를 검토해 달라.