ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬 배우기: 정규 표현식(Regex)
    IT - 프로그래밍/파이썬 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 #파이썬공부 #코딩스킬 #데이터처리

    반응형
Designed by Tistory.