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

파이썬 정규식으로 텍스트에서 이메일 주소 추출하는 방법

텍스트 데이터를 다루다 보면 문자열 속에서 이메일 주소만 골라내야 하는 경우가 자주 있습니다. 파이썬에서는 re 모듈의 정규식(Regular Expression)을 활용하면 간단하게 이메일 주소를 추출할 수 있습니다.

정규식 패턴 설명

이메일 주소는 일반적으로 사용자이름@도메인 형태로 구성됩니다. 이를 찾기 위해 다음과 같은 패턴을 사용할 수 있습니다.

  • [a-zA-Z0-9] : 알파벳 대소문자 또는 숫자로 시작
  • \S*@ : 공백 없는 문자들이 @ 기호 앞에 위치
  • \S*[a-zA-Z] : @ 뒤에 공백 없는 문자들이 오고, 알파벳으로 끝남

예제 코드

아래 코드는 re.findall() 함수를 사용해 주어진 문자열에서 이메일 주소를 추출합니다.

import re

s = 'manogna@tutorialspoint.com56'
result = re.findall('[a-zA-Z0-9]\S*@\S*[a-zA-Z]', s)
print(result)

실행 결과

위 코드를 실행하면 다음과 같은 출력을 얻을 수 있습니다.

['manogna@tutorialspoint.com']

코드 동작 원리

입력 문자열에는 이메일 뒤에 숫자 56이 붙어 있지만, 패턴이 알파벳으로 끝나도록 지정했기 때문에 숫자 부분은 결과에서 제외되고 순수한 이메일 주소만 추출됩니다.

re.findall()은 문자열 전체에서 패턴과 일치하는 모든 부분을 리스트 형태로 반환하므로, 하나의 텍스트에 여러 개의 이메일이 포함되어 있어도 한 번에 모두 추출할 수 있다는 장점이 있습니다.

참고 사항

파이썬 3부터는 print가 함수이므로 반드시 print(result)처럼 괄호를 사용해야 합니다. 또한 실제 서비스에서 더 엄밀한 이메일 검증이 필요하다면 RFC 표준에 가까운 복잡한 패턴을 사용하는 것이 좋습니다.