본문으로 건너뛰기
ToolMug

자주 쓰는 정규식 패턴

일상적인 형식 검증에 쓸 수 있는 정규식 모음이에요. 이메일, URL, IP, 날짜, 금액, 사용자 이름, 강력한 비밀번호와 중국 형식 패턴을 복사하거나 입력해 테스트하세요.

브라우저에서 실행 — 입력한 내용은 업로드되지 않아요

  • 이메일 주소

    점·더하기 기호와 여러 단계 도메인을 포함한 일반적인 이메일 형식

    /^[\w.+-]+@[\w-]+(\.[\w-]+)+$/

    ✓ name@example.com a.b+tag@mail.co.uk✗ name@ @example.com a b@example.com

  • URL (http/https)

    http:// 또는 https://로 시작하고 공백이 없음

    /^https?:\/\/[^\s/$.?#][^\s]*$/i

    ✓ https://example.com/path?q=1 http://localhost:8080✗ ftp://example.com example.com https:// bad

  • 도메인 이름

    문자, 숫자와 하이픈으로 이루어진 여러 단계 도메인

    /^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$/

    ✓ example.com sub.example.co.uk✗ -bad.com example exa_mple.com

  • IPv4 주소

    앞에 0을 붙이지 않은 0~255 네 숫자

    /^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/

    ✓ 192.168.1.1 8.8.8.8 255.255.255.0✗ 256.1.1.1 1.2.3 01.2.3.4

  • MAC 주소

    콜론이나 하이픈으로 구분한 16진수 두 자리 6개

    /^(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$/

    ✓ 00:1A:2B:3C:4D:5E 00-1a-2b-3c-4d-5e✗ 001A2B3C4D5E 00:1A:2B:3C:4D

  • 중국 휴대전화 번호

    +86 없이 13~19로 시작하는 11자리

    /^1[3-9]\d{9}$/

    ✓ 13800138000 19912345678✗ 12345678901 1380013800 +8613800138000

  • 중국 유선전화

    하이픈으로 선택적으로 구분한 지역 번호와 전화번호

    /^0\d{2,3}-?\d{7,8}$/

    ✓ 010-12345678 0755-1234567 02112345678✗ 12345678 010-123

  • 중국 신분증 (18자리)

    지역 코드 길이와 생년월일을 확인하며 마지막 문자는 X일 수 있어요. 체크섬은 확인하지 않아요.

    /^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/

    ✓ 11010519491231002X 440308199901010012✗ 11010519491331002X 1101051949123100

  • 중국 우편번호

    6자리 숫자

    /^\d{6}$/

    ✓ 100000 010000✗ 10000 1000000

  • 중국 차량 번호판

    일반 차량은 7자리, 신에너지 차량은 8자리

    /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/

    ✓ 京A12345 粤BD12345 沪A1234学✗ 京12345 京AI2345

  • 한자만

    일반적인 CJK 한자만 허용

    /^[\u4e00-\u9fa5]+$/

    ✓ 中文 正则表达式✗ 中文abc

  • QQ 번호

    0으로 시작하지 않는 5~11자리 숫자

    /^[1-9]\d{4,10}$/

    ✓ 10001 123456789✗ 01234 1234

  • 은행 카드 번호

    16~19자리 숫자이며 유효성에는 Luhn 확인도 필요해요.

    /^[1-9]\d{15,18}$/

    ✓ 6222021234567890123 4111111111111111✗ 0222021234567890 622202123456

  • 정수

    음수 선택 가능

    /^-?\d+$/

    ✓ 0 -42 12345✗ 1.5 1e3

  • 양의 정수

    앞에 0을 붙이지 않음

    /^[1-9]\d*$/

    ✓ 1 100✗ 0 01 -1

  • 십진수

    음수 선택 가능, 소수점 양쪽에 숫자 필요

    /^-?\d+(?:\.\d+)?$/

    ✓ 3.14 -0.5 42✗ .5 1. 1,000

  • 금액

    소수 둘째 자리까지의 음이 아닌 수

    /^(?:0|[1-9]\d*)(?:\.\d{1,2})?$/

    ✓ 0 99.9 1234.56✗ 01.00 1.234 -1

  • 날짜 (YYYY-MM-DD)

    월 01~12, 일 01~31이며 월별 일수는 확인하지 않음

    /^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/

    ✓ 2026-09-26 1999-12-31✗ 2026-13-01 2026-9-26 26-09-2026

  • 시간 (HH:MM[:SS])

    24시간제이며 초는 선택 사항

    /^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/

    ✓ 09:30 23:59:59✗ 24:00 9:30 12:60

  • 사용자 이름

    문자로 시작하며 4~16자의 문자·숫자·밑줄

    /^[a-zA-Z][a-zA-Z0-9_]{3,15}$/

    ✓ alice_01 Bob2026✗ 1alice ab bad-name

  • 강력한 비밀번호

    대문자·소문자·숫자·기호를 포함한 8자 이상

    /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\w\s]).{8,}$/

    ✓ Passw0rd! Aa1@aaaa✗ password Password1 Aa1@

  • 16진수 색상

    #RGB 또는 #RRGGBB

    /^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/

    ✓ #fff #0F766E✗ fff #ffff #12345g

  • UUID

    표준 UUID 형식 (버전 1~8)

    /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i

    ✓ 123e4567-e89b-42d3-a456-426614174000✗ 123e4567-e89b-42d3-c456-426614174000 123e4567e89b42d3a456426614174000

  • 시맨틱 버전

    선택적 사전 릴리스·빌드 메타데이터를 포함한 MAJOR.MINOR.PATCH

    /^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[\da-zA-Z-]+(?:\.[\da-zA-Z-]+)*)?(?:\+[\da-zA-Z-]+(?:\.[\da-zA-Z-]+)*)?$/

    ✓ 1.0.0 2.1.3-beta.1+build.5✗ 1.0 01.0.0 v1.0.0

  • HTML 태그 쌍

    짝이 맞는 여는 태그와 닫는 태그를 찾아 태그 이름과 내용을 캡처

    /<([a-zA-Z][\w-]*)\b[^>]*>([\s\S]*?)<\/\1>/g

    ✓ <b>bold</b> <a href="#">link</a>✗ <b>unclosed plain text

  • 빈 줄

    m 플래그에서 비어 있거나 공백만 있는 줄을 찾아 제거할 때 사용

    /^\s*$/m

    ✓ ✗ text

패턴은 JavaScript 문법을 사용하며 Java, Python, Go 등 대부분의 언어에서도 작동해요(백슬래시 이스케이프에 주의). 형식만 확인하므로 ID나 카드 번호의 실제 유효성은 체크섬이나 공식 검증이 필요해요.

사용 방법

  1. 검색하거나 분류를 선택해 필요한 패턴을 찾으세요.
  2. 패턴을 복사하거나 테스트 입력란에 값을 입력하세요.
  3. 일치 또는 불일치 결과와 패턴 설명을 확인하세요.

옵션 설명

문법
패턴은 JavaScript 정규식 문법을 사용하며 Java, Python, Go 등에서도 대부분 사용할 수 있어요.
형식 확인
정규식은 형식만 확인해요. 실제 ID나 카드 번호의 유효성은 체크섬이나 공식 기관의 검증이 필요해요.
중국 형식
중국 휴대전화, 유선전화, 신분증, 우편번호, 차량 번호판과 QQ 번호 패턴도 제공해요.

패턴이 만들어지는 방식: IPv4 예시

IPv4 패턴은 검증용 정규식의 전형적인 구조를 보여 줘요. 옥텟 하나는 순서대로 시도되는 네 가지 대안으로 쓰여서, 각각 0–255만 허용해요.

25[0-5]      250–255
2[0-4]\d     200–249
1\d\d        100–199
[1-9]?\d     0–99, with no leading zero

전체 패턴은 (octet\.){3}octet이고 ^와 $로 앵커를 걸어요. 그래서 192.168.1.1은 일치하지만 256.1.1.1, 01.2.3.4, 1.2.3은 일치하지 않아요.

형식이 맞는다고 유효한 것은 아니에요

패턴은 모양만 검사해요. 날짜 패턴은 모든 달에 30일을 허용하므로 2026-02-30을 받아들이고, 13월은 없으므로 2026-13-01은 거부해요. 실제 날짜 검증은 정규식으로 확인한 뒤 사용하는 언어의 날짜 라이브러리로 값을 파싱하세요.

자주 묻는 질문

정규식이 이메일 주소가 실제로 존재하는지 확인하나요?

아니요. 문자열이 일반적인 형식에 맞는지만 확인해요. 실제 수신 가능 여부는 메일 확인이 필요해요.

카드 번호 정규식만으로 결제 카드를 검증할 수 있나요?

아니요. 길이와 숫자 형식만 확인할 뿐이에요. Luhn 체크섬과 발급사 확인이 별도로 필요해요.

백슬래시를 왜 두 번 써야 하나요?

문자열 안에서 백슬래시는 이스케이프 문자로 해석될 수 있어요. 사용하는 언어의 문자열 표기 규칙에 맞게 입력하세요.

개인정보 보호

이 도구는 전적으로 브라우저에서 실행돼요. 파일과 텍스트는 기기에서 처리되며 서버로 업로드되지 않아요.

관련 도구