Python Regex: re 모듈을 사용한 패턴 일치
Python의 정규식(Regex)을 마스터하세요. 내장된 re 라이브러리를 사용하여 문자열 데이터를 검색, 일치, 분할 및 대체하는 방법을 알아보세요.
개요
정규 표현식(종종 regex로 축약됨)은 고급 텍스트 검색, 문자열 일치 및 조작에 사용되는 미니 언어입니다. 간단한 문자열 값을 확인하는 대신 정규식을 사용하면 방대한 텍스트 본문 내부를 검색할 복잡한 패턴을 정의할 수 있습니다. 예를 들어 문서에서 모든 이메일 주소, 전화번호 또는 URL을 찾는 것은 정규식으로 표현하기는 간단하지만 일반적인 문자열 방법을 사용하여 작성하기는 매우 복잡합니다.
Python은 `re` 모듈을 통해 정규식에 대한 기본 지원을 제공합니다. 이 모듈에는 첫 번째 일치 항목을 찾는 `re.search()`, 일치하는 모든 하위 문자열을 목록으로 검색하는 `re.findall()`, 일치 개체를 반복하는 `re.finditer()`와 같은 중요한 함수가 포함되어 있습니다. 각 일치 개체는 일치하는 하위 문자열의 정확한 시작 및 끝 위치 인덱스와 일치하는 텍스트 자체와 같은 메타데이터를 제공합니다.
정규식 패턴은 특수 메타 문자를 활용합니다. `\d`는 모든 숫자와 일치하고 `\w`는 영숫자 문자와 일치하며 `+`는 하나 이상의 반복과 일치하며 대괄호 `[...]`는 문자 집합을 정의합니다. 괄호 `(...)`로 그룹화하면 패턴의 특정 부분을 추출할 수 있습니다. 또한 `re.sub()`를 사용하면 패턴을 검색하고 이를 새 문자열로 바꿀 수 있습니다. 정규식은 학습 곡선이 가파르지만 이를 익히면 텍스트 처리를 위한 믿을 수 없을 만큼 빠르고 다양한 도구를 얻을 수 있습니다.
코드 및 실행 출력
re 모듈을 사용하여 이메일 주소의 구성 요소를 검증하고 추출합니다.
import re
text = "Contact support at info@pyrun.xyz or developer@pyrun.xyz today."
# Pattern to match email addresses
email_pattern = r"([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})"
# Find all matches
emails = re.findall(email_pattern, text)
print("Emails found:")
for user, domain in emails:
print(f"User: {user} | Domain: {domain}")
# Redacting emails using re.sub
redacted_text = re.sub(email_pattern, "[REDACTED]", text)
print(f"\nRedacted Text:\n{redacted_text}")Emails found:
User: info | Domain: pyrun.xyz
User: developer | Domain: pyrun.xyz
Redacted Text:
Contact support at [REDACTED] or [REDACTED] today.단계별 구현
- 형식 입력 확인(이메일, 전화, 비밀번호)
- 상태 코드에 대한 서버 액세스 로그 구문 분석
- 원시 HTML 및 마크다운 보고서에서 정보 스크랩
자주 묻는 질문
정규식 패턴에서 'r' 접두사의 의미는 무엇입니까?
이는 '원시 문자열'을 나타냅니다. 원시 문자열은 백슬래시(\)를 이스케이프 문자 대신 리터럴 문자로 처리하여 정규식 와일드카드와의 구문 충돌을 방지합니다.
re.match와 re.search의 차이점은 무엇인가요?
re.match는 문자열의 맨 처음부터 시작하는 일치 항목만 확인하는 반면, re.search는 전체 문자열에서 일치 항목을 검색합니다.
관련 주제
권장 Python 리소스
관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.
Python에서 목록을 정렬하는 방법(오름차순 및 내림차순)
sort() 메서드와 sorted() 함수를 사용하여 Python에서 목록을 정렬하는 방법을 알아보세요. 사용자 정의 키 정렬 및 역순 예시를 살펴보세요.
Python Regex 패턴(re 모듈) 치트 시트
Python 정규 표현식에 대한 참조 가이드입니다. 일치, 검색, findall, sub 및 필수 정규식 패턴을 알아보세요.
Python 대 JavaScript: 어떤 프로그래밍 언어가 가장 좋나요?
Python과 JavaScript를 포괄적으로 비교합니다. 구문 차이점, 성능, 사용 사례(백엔드와 프런트엔드) 및 코딩 예제를 살펴보세요.