[파이썬] 정규 표현식의 매칭 결과 문자열 탐색

정규 표현식은 문자열에서 패턴을 찾는 강력한 도구입니다. Python에서는 re 모듈을 사용하여 정규 표현식을 작성하고 문자열에서 매칭 결과를 탐색할 수 있습니다. 매칭 결과를 이해하고 활용하는 것은 데이터 추출, 유효성 검사, 문자열 대체 등 다양한 작업에 유용합니다.

기본 매칭

정규 표현식에서 매칭은 패턴과 문자열 사이에서 이루어집니다. 가장 간단한 매칭은 패턴을 그대로 문자열과 비교하는 것입니다.

import re

pattern = r"apple"  # 매칭할 패턴 정의
text = "I have an apple."  # 문자열

result = re.search(pattern, text)  # 패턴과 문자열 매칭

if result:  # 매칭 결과가 있을 경우
    print("매칭 성공!")
else:
    print("매칭 실패!")

위의 코드에서는 apple 이라는 패턴을 I have an apple. 문자열과 매칭하고 있습니다. 이 경우, 매칭 결과가 있으므로 “매칭 성공!”을 출력합니다.

패턴에 매칭된 문자열 추출

정규 표현식으로 패턴 매칭이 성공했다면, 매칭된 문자열을 추출할 수 있습니다. group() 메서드를 사용하여 추출할 수 있습니다.

import re

pattern = r"(\d{2})-(\d{2})-(\d{4})"  # 매칭할 패턴 정의
text = "Date: 15-09-2022"  # 문자열

result = re.search(pattern, text)  # 패턴과 문자열 매칭

if result:
    date = result.group(0)  # 첫 번째 그룹 추출
    day = result.group(1)  # 두 번째 그룹 추출
    month = result.group(2)  # 세 번째 그룹 추출
    year = result.group(3)  # 네 번째 그룹 추출
    
    print(f"날짜: {date}")
    print(f"일: {day}")
    print(f"월: {month}")
    print(f"년: {year}")

위의 예시에서는 15-09-2022와 같은 날짜 형식의 매칭을 추출하고 있습니다. 정규 표현식의 그룹을 활용하여 매칭된 결과를 각각의 변수에 저장하고 출력합니다.

반복 매칭

정규 표현식에서는 반복 매칭 기능을 제공합니다. *는 0회 이상의 반복, +는 1회 이상의 반복, ?는 0 또는 1회의 매칭을 의미합니다.

import re

pattern = r"ba(na)+"  # 매칭할 패턴 정의
text = "I love banana!"  # 문자열

result = re.search(pattern, text)  # 패턴과 문자열 매칭

if result:
    print("매칭 성공!")
else:
    print("매칭 실패!")

위의 예시에서는 banana와 같은 문자열 패턴을 매칭하고 있습니다. na가 1회 이상 반복되는 문자열을 찾기 때문에 banana는 매칭 결과에 포함됩니다.

정규 표현식을 사용하여 문자열에서 패턴을 검색하고 매칭 결과를 추출하는 방법을 알아보았습니다. Python의 re 모듈은 문자열 처리를 위한 강력한 도구이며, 정규 표현식을 다룰 수 있는 기본 라이브러리입니다. 매칭 결과의 활용은 데이터 처리 작업에서 매우 유용하며, 다양한 활용 방법을 익힐 수 있습니다.