정규 표현식은 문자열에서 패턴을 찾는 강력한 도구입니다. 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
모듈은 문자열 처리를 위한 강력한 도구이며, 정규 표현식을 다룰 수 있는 기본 라이브러리입니다. 매칭 결과의 활용은 데이터 처리 작업에서 매우 유용하며, 다양한 활용 방법을 익힐 수 있습니다.