1. 정규 표현식(Regex)이란?
정규 표현식(Regular Expression, Regex)은 특정한 문자열 패턴을 검색, 매칭, 변환하는 데 사용되는 도구입니다.
프로그래밍에서 텍스트 데이터를 다룰 때, 효율적으로 문자열을 찾고 조작할 수 있도록 도와줍니다.
✅ 어디에 사용될까?
🖤 회원가입 시 이메일 & 패스워드 유효성 검사
🖤 로그 파일에서 특정 패턴(예: 에러 로그)만 필터링
🖤 데이터 크롤링 시 원하는 문자열 추출
보안 제품 개발 실무에서도 많이 활용 되고 있습니다
2. 정규 표현식 기본 문법
기호 | 의미 | 예제 |
---|---|---|
. |
아무 문자 1개 | a.c → "abc", "aac" 매칭 |
^ |
문자열의 시작 | ^Hello → "Hello world" 매칭 |
$ |
문자열의 끝 | world$ → "Hello world" 매칭 |
* |
앞 문자가 0개 이상 반복 | go* → "g", "go", "goo", "gooo" |
+ |
앞 문자가 1개 이상 반복 | go+ → "go", "goo", "gooo" |
? |
앞 문자가 0개 또는 1개 | colou?r → "color", "colour" |
3. 실전 활용 예제 🚀
📌 1) 이메일 검증 (회원가입 폼)
import re
email = "user@example.com"
pattern = r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
if re.match(pattern, email):
print("✅ 유효한 이메일 주소입니다!")
else:
print("❌ 잘못된 이메일 형식입니다.")
🔹 실행 결과:
✅ "user@example.com" → 올바른 이메일
❌ "user@.com" → 잘못된 이메일
📌 2) 로그 파일에서 ERROR 메시지만 추출
import re
log_data = """
INFO: Server started
ERROR: Connection failed
WARNING: Disk space low
ERROR: Timeout occurred
"""
errors = re.findall(r"ERROR: .*", log_data)
print(errors)
🔹 실행 결과:["ERROR: Connection failed", "ERROR: Timeout occurred"]
실전에서 웹 서버 로그를 분석할 때 유용하게 사용 가능!
📌 3) 비밀번호 강도 검사 (8자 이상, 영문+숫자+특수문자 포함)
import re
password = "StrongPass!123"
pattern = r"^(?=.*[A-Za-z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,}$"
if re.match(pattern, password):
print("✅ 강력한 비밀번호입니다!")
else:
print("❌ 비밀번호 조건을 충족하지 않습니다.")
✔ 안전한 패스워드를 만들기 위해 필수!
4. 결론 📌
정규 표현식은 단순한 문자열 검색을 넘어, 데이터 검증, 필터링, 변환등 다양한 곳에서 필수적인 도구입니다.
이메일 유효성 검사, 로그 분석, 데이터 전처리 등 실무에서 꼭 활용해 보세요!
'기타' 카테고리의 다른 글
Ory IAM 인증 시스템 구축 - 웹 & 앱 로그인 흐름 (0) | 2025.04.04 |
---|---|
VS Code 단축키 정리 (0) | 2025.03.31 |
KMP 알고리즘 (Knuth-Morris-Pratt Algorithm) (0) | 2024.06.22 |
Longest Common Subsequence (0) | 2024.06.20 |