Network/Data communication

정규표현식(Regex) 기본 문법 정리

범데이 2025. 8. 30. 22:34

개발을 하다 보면 문자열 처리와 검증이 필요하다.

그때 유용하게 쓰이는 도구가 정규표현식(Regular Expression, Regex)이다.

 

여기서는 실무에서 자주 쓰이는 기본 문법을 정리했다. 이 정도만 익혀도 대부분의 상황을 커버할 수 있다.

 

 


1. 문자 매칭

  • . : 임의의 문자 1개 (줄바꿈 제외)
    • 예: a.cabc, axc
  • [...] : 문자 집합(괄호 안에 있는 문자 중 하나)
    • 예: [abc]a, b, c
    • 예: [0-9] → 숫자 0~9
    • 예: [a-zA-Z] → 알파벳 전체
  • [^...] : 괄호 안의 문자를 제외
    • 예: [^0-9] → 숫자가 아닌 문자

 

 

 

2. 반복 (Quantifier)

  • * : 0회 이상 반복이다.
    • 예: ab* → a, ab, abb, abbb...
  • + : 1회 이상 반복이다.
    • 예: ab+ → ab, abb, abbb... (단독 a는 매칭 안 됨)
  • ? : 0회 또는 1회이다.
    • 예: ab? → a, ab
  • {n} : 정확히 n번 반복이다.
    • 예: [0-9]{3} → 숫자 3자리
  • {n,} : n번 이상 반복이다.
    • 예: [0-9]{2,} → 최소 2자리 이상 숫자
  • {n,m} : n~m번 반복이다.
    • 예: [0-9]{2,4} → 2자리~4자리 숫자

 

 

 

3. 경계 (Anchors)

  • ^ : 문자열의 시작이다.
    • 예: ^Hello"Hello world" 매칭
  • $ : 문자열의 끝이다.
    • 예: world$"Hello world" 매칭
  • \b : 단어 경계(공백, 구두점, 문자열 시작/끝)이다.
    • 예: \bcat\b"a cat is here" 매칭, "category"는 매칭 안 됨

 

 

 

4. 그룹과 OR

  • ( ) : 그룹이다.
    • 예: (ab)+ab, abab, ababab...
  • | : OR(또는)이다.
    • 예: cat|dog"cat" 또는 "dog"

 

 

 

5. 이스케이프 (특수문자 그대로 사용)

정규식에서 . * + ? ( ) [ ] { } | ^ $ \ 같은 특수문자를 그대로 쓰려면 역슬래시 \로 escape 해야 한다.

  • 예: \.. (마침표 문자 자체)
  • 예: \\\ (역슬래시 자체)

 

 

 

6. 자주 쓰이는 메타문자

  • \d : 숫자 [0-9]
  • \D : 숫자가 아닌 문자 [^0-9]
  • \w : 단어 문자 [A-Za-z0-9_]
  • \W : 단어 문자가 아닌 것
  • \s : 공백(스페이스, 탭, 줄바꿈 등)
  • \S : 공백이 아닌 문자

 


 

간단한 예시

1. 이메일 주소

^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$

이메일 형식을 검증한다.

 

2. 전화번호 (010-XXXX-XXXX)

^010-\d{4}-\d{4}$

휴대폰 번호 형식을 검증한다.

 

 

3. 숫자만 입력 (최소 1자리 이상)

^\d+$

숫자만 허용한다.

 

728x90
반응형