상세 컨텐츠

본문 제목

파이썬 배우기: 정규 표현식(Regex)

IT - 프로그래밍/파이썬

by 파란 호랑 2025. 3. 12. 12:10

본문

반응형

정규 표현식(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 #파이썬공부 #코딩스킬 #데이터처리

728x90
반응형

관련글 더보기