본문 바로가기
Com 알아두면 좋은 Tip

정규표현식(Regex)의 기초 개념과 자주 쓰는 매칭 패턴 예시 총정리

by 알 수 없는 사용자 2026. 6. 17.
300x250

정규표현식(Regular Expression, 줄여서 Regex)은 특정한 규칙을 가진 문자열의 집합을 표현하기 위해 사용하는 형식 언어입니다. 방대한 텍스트 데이터 속에서 특정 패턴을 찾거나, 바꾸거나, 이메일·전화번호 같은 유효성을 검사할 때 필수적으로 사용되는 강력한 도구입니다.

정규표현식의 핵심 기초 개념과 실무에서 바로 쓰는 자주 문 패턴들을 깔끔하게 정리해 드립니다.


1부: 정규표현식 핵심 기초 개념 (메타 문자)

정규표현식은 일반 문자와 특수한 의미를 지닌 메타 문자(Meta Characters)의 조합으로 구성됩니다. 이 메타 문자들을 조합하여 원하는 규칙을 만듭니다.

1. 문자와 위치 매칭

  • . (Dot) : 아무 문자 1개를 의미합니다. (단, 줄바꿈 문자 제외)
    • 예: a.b ➡️ aab, abb, a1b 등 매칭
  • ^ (Caret) : 문자열의 시작을 나타냅니다.
    • 예: ^Hello ➡️ Hello로 시작하는 행만 매칭
  • $ (Dollar) : 문자열의 을 나타냅니다.
    • 예: done$ ➡️ done으로 끝나는 행만 매칭

2. 문자 집합과 범위 [ ]

대괄호 [ ] 안에 넣은 문자들 중 딱 하나와 매칭됩니다. 대괄호 안에서 하이픈(-)을 쓰면 범위를 지정할 수 있습니다.

  • [abc] : a 또는 b 또는 c 중 문자 1개
  • [a-z] : 알파벳 소문자 중 1개
  • [0-9] : 숫자 중 1개
  • [^0-9] : 대괄호 안의 맨 앞에 ^가 붙으면 부정(Not)을 의미합니다. 즉, 숫자가 아닌 문자 1개

3. 수량자 (반복 매칭)

패턴이 몇 번 반복되는지 지정합니다.

  • * : 앞의 패턴이 0번 이상 반복 ({0,})
  • + : 앞의 패턴이 1번 이상 반복 ({1,})
  • ? : 앞의 패턴이 0번 또는 1번 존재 ({0,1} - 있거나 없거나)
  • {n} : 정확히 n번 반복
  • {n,m} : 최소 n번에서 최대 m번 반복

4. 자주 쓰는 축약 단축어 (자주 쓰임)

  • \d : 숫자와 매칭 ([0-9]와 동일, digit)
  • \D : 숫자가 아닌 모든 문자와 매칭 ([^0-9]와 동일)
  • \w : 문장 자모음, 숫자, 언더바(_)와 매칭 ([a-zA-Z0-9_]와 동일, word)
  • \W : 알파벳+숫자+_가 아닌 문자 (특수문자, 공백 등)
  • \s : 공백 문자 (스페이스, 탭, 줄바꿈 등, space)

2부: 실무에서 가장 자주 쓰는 Regex 패턴 예시

실제 개발이나 업무 자동화, 데이터 정제 시 가장 많이 복사해서 사용하는 필수 패턴 공식들입니다.

1. 이메일 주소 검사 패턴

가장 대표적인 정규표현식 예시입니다. 아이디 영역, @ 기호, 도메인 영역을 차례로 검사합니다.

코드 스니펫
 
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
  • 해석: 알파벳·숫자·특수문자 일부가 1번 이상 반복되고(+), 중간에 @가 오며, 다시 도메인 주소가 오고, 마침표(.) 뒤에 알파벳 국가/서비스 도메인이 최소 2글자 이상({2,}) 오는 구조를 검사합니다.
  • 참고: 정규식에서 마침표 기호 본연의 문자를 매칭하려면 반드시 역슬래시를 붙여 \.로 이스케이프 처리를 해야 합니다.

2. 휴대폰 번호 패턴 (010-XXXX-XXXX)

하이픈이 있거나 없는 경우를 모두 유연하게 처리하는 한국 휴대폰 번호 패턴입니다.

코드 스니펫
 
^010-?\d{3,4}-?\d{4}$
  • 해석: 010으로 시작하여, 하이픈이 있을 수도 없을 수도 있고(-?), 중간 숫자는 3자리 또는 4자리(\d{3,4}), 다시 하이픈 유무 체크 후, 마지막은 무조건 숫자 4자리(\d{4})로 끝나는 패턴입니다.

3. 비밀번호 안전성 검사 (복합 조건)

최소 8자 이상이며 알파벳 소문자, 대문자, 숫자가 각각 최소 1개 이상 포함되어야 하는 가이드라인 패턴입니다.

코드 스니펫
 
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$
  • 해석: (?=...)는 전방탐색(Lookahead)이라는 고급 문법으로, 문자열 전반을 미리 훑으며 소문자, 대문자, 숫자가 조건에 만족하는지 먼저 검사한 후 전체 길이가 8자 이상({8,})인지 최종 매칭합니다.

4. IP 주소(IPv4) 매칭 패턴

0~255 범위의 숫자 4개가 점으로 연결된 형태를 찾습니다.

코드 스니펫
 
^(?:\d{1,3}\.){3}\d{1,3}$
  • 해석: 1~3자리의 숫자와 점이 결합한 패턴 \d{1,3}\.이 세 번 반복되고({3}), 마지막에 다시 1~3자리 숫자로 끝나는 형태입니다.

5. 날짜 포맷 패턴 (YYYY-MM-DD)

연, 월, 일 형식을 띠고 있는 텍스트를 추출하거나 검사할 때 씁니다.

코드 스니펫
 
^\d{4}-\d{2}-\d{2}$
  • 해석: 숫자 4자리, 하이픈, 숫자 2자리, 하이픈, 숫자 2자리 구조를 정확히 짚어냅니다.

💡 정규표현식 사용 팁

  1. 대소문자 구분 플래그: 정규표현식을 쓸 때 플래그 옵션으로 i (Ignore Case)를 주면 알파벳 대소문자를 구분하지 않고 매칭할 수 있어 편리합니다. (예: /[a-z]/i)
  2. 연습 및 테스트 도구: 정규표현식은 눈으로만 보면 이해하기 아주 어렵습니다. Regex101 같은 웹사이트를 이용하면 내가 작성한 정규식이 어떤 문자와 매칭되는지 실시간으로 하이라이팅되어 초보자도 쉽게 독학할 수 있습니다.
300x250