개발을 하다 보면 문자열 처리와 검증이 필요하다.
그때 유용하게 쓰이는 도구가 정규표현식(Regular Expression, Regex)이다.
여기서는 실무에서 자주 쓰이는 기본 문법을 정리했다. 이 정도만 익혀도 대부분의 상황을 커버할 수 있다.
1. 문자 매칭
- . : 임의의 문자 1개 (줄바꿈 제외)
- 예: a.c → abc, 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
반응형
'Network > Data communication' 카테고리의 다른 글
| REST API vs Kafka 기반 메시지 큐: 성능과 메시지 유실 고려 (4) | 2025.08.30 |
|---|---|
| RESTful이란? 한 번에 이해하는 RESTful의 개념 (1) | 2025.08.01 |
| 정적 렌더링(Static)과 동적 렌더링(Dynamic)의 차이 (0) | 2025.06.18 |
| Waterfall Request 방식이란? (0) | 2025.06.18 |
| HTTP 메서드를 구별해서 사용하는 이유: RESTful API 설계의 중요성 (0) | 2024.06.29 |