Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 문자열에서 날짜 추출하기: 정규식과 strptime 활용 방법

문자열에서 날짜를 추출하려면 먼저 해당 문자열에 포함될 수 있는 날짜의 형식을 알아야 합니다. 형식을 파악한 후에는 정규 표현식(regular expression)으로 날짜 부분을 추출하고, datetime.datetime.strptime 함수로 이를 파싱(parse)하면 됩니다.

기본 원리

예를 들어, 문자열에 YYYY-MM-DD 형식의 날짜가 포함되어 있다면 다음과 같은 코드로 날짜를 추출하고 파싱할 수 있습니다.

예제 코드

import re, datetime

s = "I have a meeting on 2018-12-10 in New York"
match = re.search(r'\d{4}-\d{2}-\d{2}', s)
date = datetime.datetime.strptime(match.group(), '%Y-%m-%d').date()
print(date)

코드 설명

  • re.search(r'\d{4}-\d{2}-\d{2}', s): 정규 표현식을 사용해 문자열에서 '4자리 숫자-2자리 숫자-2자리 숫자' 패턴, 즉 YYYY-MM-DD 형식의 날짜를 찾습니다.
  • match.group(): 매칭된 날짜 문자열(예: '2018-12-10')을 반환합니다.
  • datetime.strptime(match.group(), '%Y-%m-%d'): 추출한 문자열을 지정한 형식에 맞춰 datetime 객체로 변환합니다.
  • .date(): datetime 객체에서 날짜 정보만 담고 있는 date 객체를 얻습니다.

실행 결과

위 코드를 실행하면 다음과 같은 출력이 나타납니다.

2018-12-10

참고 사항

날짜 형식이 다르다면 정규 표현식과 strptime의 포맷 문자열만 변경하면 됩니다. 예를 들어 DD/MM/YYYY 형식이라면 r'\d{2}/\d{2}/\d{4}' 패턴과 '%d/%m/%Y' 포맷을 사용하면 됩니다. 또한 Python 3 환경에서는 print(date)처럼 괄호를 사용하는 것이 표준입니다.