정규 표현식(Regular Expression, Regex) 은 문자열에서 특정 패턴을 찾거나, 변경하거나, 검증하는 강력한 도구입니다.
파이썬에서는 re 모듈을 사용하여 정규 표현식을 처리할 수 있습니다.
이번 글에서는 정규 표현식의 기본 개념과 활용법을 정리해 보겠습니다!
정규 표현식이란?
정규 표현식(Regex) 은 특정한 규칙을 가진 문자열 패턴을 정의하는 표현식입니다.
✅ 문자열 검색, 패턴 매칭, 텍스트 데이터 처리 등에 활용됩니다.
📌 정규 표현식 기본 예제
import re
text = "Python is fun!"
pattern = r"Python"
if re.search(pattern, text):
print("패턴을 찾았습니다!")
✅ re.search(pattern, text) → 문자열에서 패턴 검색
정규 표현식 기본 문법
정규 표현식에서 많이 쓰이는 기호들을 알아보겠습니다.
파이썬 re 모듈 활용법
(1) re.search() – 문자열에서 패턴 찾기
import re
text = "My email is example@gmail.com"
pattern = r"\w+@\w+\.\w+"
match = re.search(pattern, text)
if match:
print("이메일을 찾았습니다:", match.group())
✅ 출력 결과
이메일을 찾았습니다: example@gmail.com
🔹 \w+@\w+\.\w+ → 이메일 형식 매칭
🔹 match.group() → 찾은 패턴 출력
(2) re.findall() – 모든 일치 항목 찾기
import re
text = "My emails are first@gmail.com and second@yahoo.com"
pattern = r"\w+@\w+\.\w+"
matches = re.findall(pattern, text)
print(matches)
출력 결과
['first@gmail.com', 'second@yahoo.com']
🔹 re.findall(pattern, text) → 모든 이메일 찾기
(3) re.sub() – 문자열 치환하기
import re
text = "My phone number is 123-456-7890"
pattern = r"\d{3}-\d{3}-\d{4}"
replacement = "[HIDDEN]"
new_text = re.sub(pattern, replacement, text)
print(new_text)
출력 결과
My phone number is [HIDDEN]
🔹 re.sub(pattern, replacement, text) → 개인 정보 보호 처리
(4) re.split() – 정규 표현식으로 문자열 분할
import re
text = "apple, orange; banana grape"
pattern = r"[,; ]+"
words = re.split(pattern, text)
print(words)
출력 결과
['apple', 'orange', 'banana', 'grape']
🔹 [,; ]+ → 쉼표(,), 세미콜론(;), 공백을 기준으로 문자열 분할
정규 표현식 활용 예제
(1) 전화번호 검증
import re
pattern = r"^\d{3}-\d{3,4}-\d{4}$"
phone_numbers = ["010-1234-5678", "02-567-8901", "123-4567-890"]
for number in phone_numbers:
if re.match(pattern, number):
print(f"유효한 번호: {number}")
else:
print(f"잘못된 번호: {number}")
✅ ^\d{3}-\d{3,4}-\d{4}$ → 한국 전화번호 형식 검사
(2) 비밀번호 강도 검사
import re
pattern = r"^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$"
passwords = ["abc123!", "StrongPass1@", "weakpass"]
for password in passwords:
if re.match(pattern, password):
print(f"강력한 비밀번호: {password}")
else:
print(f"약한 비밀번호: {password}")
✅ (?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&]) → 영문, 숫자, 특수문자 포함
✅ {8,} → 최소 8 자 이상
마무리 및 요약
✅ 정규 표현식(Regex) 은 문자열에서 특정 패턴을 찾거나 변환하는 강력한 도구
✅ 파이썬 re 모듈을 사용하여 정규 표현식 활용 가능
✅ 주요 함수
• re.search() → 일치하는 패턴 검색
• re.findall() → 모든 패턴 찾기
• re.sub() → 문자열 치환
• re.split() → 패턴 기준으로 문자열 분할
이제 정규 표현식을 활용하여 더 효율적으로 문자열을 처리해 보세요!
#파이썬 #Python #정규표현식 #Regex #문자열처리 #개발자 #PythonTips #파이썬공부 #코딩스킬 #데이터처리
파이썬 배우기: OOP 기본 – 추상화와 다형성 (0) | 2025.03.19 |
---|---|
파이썬 배우기: OOP 기본 – 캡슐화 및 상속 (0) | 2025.03.14 |
파이썬 배우기: 고차 함수, 클로저 및 데코레이터 완벽 정리 (0) | 2025.03.02 |
파이썬 배우기: 재귀 함수 활용하기 (0) | 2025.02.27 |
파이썬 배우기: 익명 함수(lambda 함수) (0) | 2025.02.26 |