RunToolz iconRunToolz
Welcome to RunToolz!
정규식프로그래밍치트시트

개발자가 북마크해야 할 정규식 패턴 20선

가장 유용한 정규식 실전 치트시트 — 이메일, URL, 전화번호, IP, 날짜 등. 복사해서 바로 써.

RunToolz Team2026년 2월 2일6 min read

정규식은 될 때는 마법 같고 안 될 때는 미칠 것 같은 도구야. 유용한 패턴을 몇 년간 모아왔는데, 이 20개가 내가 계속 꺼내 쓰는 것들이야.

이 페이지 북마크해. 다시 돌아올 거야.

자꾸 까먹는 기본

패턴 전에, 사람들이 헷갈리는 부분 빠르게 복습:

  • .은 아무 문자 매칭 (줄바꿈 제외)
  • *는 0개 이상, +는 1개 이상, ?는 0개 또는 1개
  • \d는 숫자, \w는 단어 문자, \s는 공백
  • ^는 문자열 시작, $는 문자열 끝
  • ()는 그룹, []는 문자 클래스, {}는 수량

20가지 패턴

1. 이메일 주소

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

대부분의 실제 이메일을 커버해. RFC 5322 완전 호환은 아니지만(거의 아무것도 아님) 유효한 주소의 99%를 처리해.

2. URL (HTTP/HTTPS)

https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)

경로와 쿼리 문자열이 있는 HTTP와 HTTPS URL 모두 매칭.

3. 전화번호 (국제)

^\+?[1-9]\d{1,14}$

E.164 포맷 — 국제적으로 작동해. 한국 전용: ^01[016789]-?\d{3,4}-?\d{4}$

4. IPv4 주소

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

각 옥텟이 0-255인지 검증해. 더 간단한 패턴들은 999.999.999.999 같은 잘못된 주소도 받아들여.

5. IPv6 주소

^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$

기본 전체 형식 IPv6. 축약 표기(::)는 커버하지 않지만 가장 흔한 포맷을 처리해.

6. 날짜 (YYYY-MM-DD)

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

ISO 8601 날짜 포맷. 월과 일 범위를 검증하지만 2월 31일 같은 불가능한 날짜는 체크 안 해.

7. 시간 (HH:MM, 24시간)

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

24시간 형식, 00:00에서 23:59.

8. 16진수 색상 코드

^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$

3자리와 6자리 hex 색상 모두 매칭: #fff, #1a2b3c.

9. 강한 비밀번호

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$

대문자, 소문자, 숫자, 특수문자가 포함된 최소 8자. 최소 길이와 허용 문자를 필요에 따라 조정해.

10. 사용자명

^[a-zA-Z0-9_-]{3,20}$

영숫자에 밑줄과 하이픈, 3-20자.

직접 사용해 보시겠어요?패턴 테스트하기

11. HTML 태그

<\/?[\w\s]*>|<.+[\W]>

여는 태그와 닫는 HTML 태그 매칭. 실제 작업에서 HTML 파싱에 정규식 쓰지 마 — 적절한 파서를 써. 근데 빠른 검색에는 작동해.

12. 공백 트리밍

^\s+|\s+$

앞뒤 공백을 매칭. 정리 작업에 유용해.

13. 중복 단어

\b(\w+)\s+\1\b

"the the"나 "is is" 같은 반복 단어를 잡아. 교정에 좋아.

14. 파일 확장자

\.([a-zA-Z0-9]+)$

파일 확장자를 추출해. 그룹 1이 점 없는 확장자만 줘.

15. 슬러그 (URL 친화적 문자열)

^[a-z0-9]+(?:-[a-z0-9]+)*$

URL 슬러그 검증: 소문자, 숫자, 하이픈. 연속 하이픈 없고 하이픈으로 시작하거나 끝나지 않아.

16. 신용카드 번호 (기본)

^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13})$

Visa, MasterCard, American Express 패턴 감지. 포맷 검증용이야 — 실제 검증에는 항상 결제 처리기를 써.

17. UUID v4

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

올바른 버전과 변형 비트가 있는 UUID 버전 4 포맷 검증.

18. JSON 문자열 값

"(?:[^"\\]|\\.)*"

백슬래시 이스케이프를 올바르게 처리하는 JSON 문자열 값 매칭.

19. CSS 속성

([a-z-]+)\s*:\s*([^;]+);

CSS 속성-값 쌍 추출. 그룹 1이 속성 이름, 그룹 2가 값.

20. 마크다운 링크

\[([^\]]+)\]\(([^)]+)\)

[텍스트](url) 링크 매칭. 그룹 1이 링크 텍스트, 그룹 2가 URL.

정규식 사용 팁

단순하게 시작해서 확장해. 완벽한 패턴을 한 번에 쓰려고 하지 마. 작동하는 가장 단순한 버전부터 시작하고 엣지 케이스 처리를 추가해.

테스터를 써. 배포 전에 항상 실제 데이터로 패턴을 테스트해. 엣지 케이스가 놀라게 할 거야.

주석을 달아. 대부분의 정규식 엔진이 주석과 공백을 추가할 수 있는 상세 모드를 지원해.

정규식을 쓰지 말아야 할 때를 알아. HTML 파싱, 복잡한 날짜 검증, 깊이 중첩된 구조 처리 — 그런 건 적절한 파서를 써.

직접 사용해 보시겠어요?정규식 패턴 테스트

텍스트 비교로 정규식 치환이 올바른 결과를 냈는지 확인하거나, 글자수 세기로 매칭된 문자열의 길이를 체크할 수도 있어.


정규식은 연습으로 늘어나는 기술이야. 모든 문법 규칙을 외울 필요는 없어 — 패턴을 읽고 필요에 맞게 수정할 수 있을 만큼 알면 돼. 이 치트시트를 가까이 두면 Stack Overflow에서 덜 시간 쓰고 실제로 만드는 데 더 시간을 쓸 수 있을 거야.