[python] 정규표현식을 이용한 전화번호 추출하기
정규표현식은 문자열에서 특정 패턴을 찾거나 추출하기 위해 사용되는 강력한 도구입니다. 이번에는 Python을 사용하여 전화번호를 추출하는 방법에 대해 알아보겠습니다.
정규표현식 패턴
전화번호는 다양한 형식으로 표현될 수 있습니다. 예를 들어, “010-1234-5678”, “01012345678”, “(010) 1234-5678” 등의 형태가 있습니다. 이러한 다양한 형식의 전화번호를 추출하기 위해 정규표현식 패턴을 작성해야 합니다.
아래는 전화번호 추출을 위한 정규표현식 패턴의 예입니다.
pattern = r"\d{2,3}[-\s]?\d{3,4}[-\s]?\d{4}"
위 패턴은 다음과 같은 규칙으로 이루어져 있습니다.
\d{2,3}
: 2자리 또는 3자리의 숫자 (국가 코드)[-\s]?
: ‘-‘ 또는 공백 문자가 있을 수도 있고 없을 수도 있음\d{3,4}
: 3자리 또는 4자리의 숫자 (지역 코드 및 전화번호 중간 번호)[-\s]?
: ‘-‘ 또는 공백 문자가 있을 수도 있고 없을 수도 있음\d{4}
: 4자리의 숫자 (전화번호 마지막 번호)
전화번호 추출하기
Python에서는 re
모듈을 이용하여 정규표현식을 적용할 수 있습니다. 아래는 주어진 문자열에서 전화번호를 추출하는 예제 코드입니다.
import re
text = "문자열에서 전화번호를 추출하는 예제입니다. 전화번호는 010-1234-5678입니다."
pattern = r"\d{2,3}[-\s]?\d{3,4}[-\s]?\d{4}"
phone_numbers = re.findall(pattern, text)
print(phone_numbers)
위 코드를 실행하면, 문자열에서 추출한 전화번호가 리스트 형태로 출력됩니다.
실행 결과:
['010-1234-5678']
결론
정규표현식을 이용하면 다양한 형식의 전화번호를 추출할 수 있습니다. Python의 re
모듈을 활용하여 정규표현식을 적용하면 간단하게 전화번호 추출이 가능합니다. 이를 응용하여 문자열 처리나 데이터 분석 등 다양한 상황에서 유용하게 활용할 수 있습니다.
참고 자료:
- Python Regular Expression HOWTO: https://docs.python.org/3/howto/regex.html