정규표현식 테스트 도구

이 도구에 대하여

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

테스트 실행

—

사용 방법

  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 파싱 등 정밀 검증이 필요하면 전용 로직이나 라이브러리를 검토해 달라.