파이썬에서 자주 사용하는 정규표현식(Regex)은 문자열 검색, 추출, 검증, 치환 등에 매우 유용합니다.
✅ 기본 사용법 (re 모듈)
import re
pattern = r"정규표현식"
text = "대상 문자열"
re.search(pattern, text) # 하나 찾기
re.findall(pattern, text) # 전부 찾기
re.sub(pattern, "바꿀값", text) # 치환
🧩 자주 사용하는 정규표현식 패턴
패턴 | 의미 | 예시 |
. | 아무 문자 1개 | a.c → abc , acc |
\d | 숫자 (0~9) | \d+ → "123", "42" |
\D | 숫자 제외 | \D+ → "abc", "@!" |
\w | 알파벳+숫자+_ | \w+ → "word_123" |
\W | 특수문자 | \W+ → "!@#", " " |
\s | 공백 문자 | \s+ → " ", "\n", "\t" |
^ | 시작 | ^Hello → "Hello world" |
$ | 끝 | world$ → "hello world" |
`a | b` | a 또는 b |
[] | 문자 집합 | [abc] → a/b/c |
[^abc] | a, b, c 제외 | [^0-9] → 숫자 아닌 문자 |
{n} | 정확히 n개 | \d{3} → 3자리 숫자 |
{n,m} | n~m개 반복 | a{2,4} → aa, aaa, aaaa |
📌 실전 예시 모음
1. 이메일 주소 찾기
re.findall(r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-z]{2,}", text)
2. 전화번호 (010-1234-5678)
re.findall(r"010-\d{4}-\d{4}", text)
3. 숫자만 추출
re.findall(r"\d+", "abc123def45") # ['123', '45']
4. 한글만 추출
re.findall(r"[가-힣]+", "안녕하세요123abc") # ['안녕하세요']
5. 영어 대소문자 추출
re.findall(r"[a-zA-Z]+", "Hi123안녕") # ['Hi']
🔄 문자열 치환
re.sub(r"\d+", "***", "비밀번호는 1234입니다.")
# 출력: '비밀번호는 ***입니다.'
✅ 요약
\d
,\w
,.
등은 가장 기본이자 강력한 축약 패턴
re.findall
,re.sub
,re.match
,re.search
자주 사용
- 문자열 검증, 파싱, 치환에 정규표현식 매우 유용
Share article