정규표현식

·2025년 9월 15일

공부내용정리

목록 보기
1/3

1. 정의

문자열에서 특정한 패턴을 찾거나, 검사하거나, 변환하기 위해 사용하는 표현식

2. 정규표현식이 필요한 이유

  • 검증: 아이디가 영문/숫자 조합인지, 이메일 형식이 맞는지 검사할 때
  • 검색: 긴 텍스트 안에서 특정 패턴(예: 날짜, 전화번호, URL) 추출
  • 치환: 특정 규칙에 맞는 문자열을 다른 문자열로 바꿀 때

3. 기본 문법 요소

기호의미예시
.임의의 문자 1개a.baab, axb 가능
[]문자 집합[abc]a 또는 b 또는 c
^문자열 시작^abcabc로 시작
$문자열 끝xyz$xyz로 끝
*0회 이상 반복a*"", a, aa, aaa...
+1회 이상 반복a+a, aa, aaa...
?0회 또는 1회a?"", a
{n}n회 반복a{3}aaa
{n,}최소 n회 반복a{2,}aa, aaa, ...
{n,m}n~m회 반복a{2,4}aa, aaa, aaaa
``OR`catdogcat또는dog`
()그룹(ab)+ab, abab, ababab...
\d숫자(0-9)\d{3} → 숫자 3자리
\w문자+숫자+_\w+ → 단어 하나
\s공백 문자\s+ → 스페이스, 탭 등
\b단어 경계\bword\b → 단어 단독 "word"

4. 예제

(1) 이메일 검증

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
  • ^[...] → 시작
  • @ 앞: 알파벳, 숫자, 특수문자 허용
  • @ 뒤: 도메인 이름 형식
  • .[a-zA-Z]{2,} → .com, .net 등

(2) 휴대폰 번호 (한국)

^01[0-9]-\d{3,4}-\d{4}$
  • 01[0-9] → 010, 011, 016 등
  • \d{3,4} → 3~4자리
  • \d{4} → 마지막 4자리

(3) 아이디 (영문 소문자 + 숫자만, 5~15자)

^[a-z0-9]{5,15}$

(4) 비밀번호 ( 대문자, 소문자, 숫자, 특수문자 최소 1개씩 + 8자 이상 )

^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[!@#$%^&*(),.?":{}|<>])(?=.{8,}).*$
  • (?=.*[A-Z]) → 대문자 최소 1개
  • (?=.*[a-z]) → 소문자 최소 1개
  • (?=.*\d) → 숫자 최소 1개
  • (?=.[!@#$%^&(),.?":{}|<>]) → 특수문자 최소 1개
  • (?=.{8,}) → 전체 길이 8자 이상

0개의 댓글