본문 바로가기

언어/Python

[ Python ] 정규 표현식으로 전화번호 추출하기

반응형

정규 표현식으로 전화번호 추출하기

파이썬의 re 모듈을 사용하여 문자열에서 전화번호를 추출하는 예제를 작성해보겠습니다. 다양한 형식의 전화번호를 추출할 수 있도록 정규표현식을 설계할 수 있습니다. 여기서는 일반적으로 사용되는 전화번호 형식(예: (XXX) XXX-XXXX, XXX-XXX-XXXX, XXX.XXX.XXXX, XXXXXXXXXX)을 추출하는 예제를 만들어 보겠습니다.

1. re 모듈 가져오기

먼저 re 모듈을 가져옵니다.

import re

2. 전화번호 추출 패턴 정의

다양한 형식의 전화번호를 추출할 수 있는 정규표현식 패턴을 정의합니다.

phone_pattern = r'\(?\b[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}\b'

위 패턴은 다음과 같은 형식의 전화번호를 추출할 수 있습니다:

  • (123) 456-7890
  • 123-456-7890
  • 123.456.7890
  • 123 456 7890
  • 1234567890

3. 전화번호 추출 함수

정규표현식을 사용하여 문자열에서 전화번호를 추출하는 함수를 작성합니다.

def extract_phone_numbers(text):
    phone_pattern = r'\(?\b[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}\b'
    phone_numbers = re.findall(phone_pattern, text)
    return phone_numbers

4. 예제 문자열에서 전화번호 추출

작성한 함수와 정규표현식을 사용하여 예제 문자열에서 전화번호를 추출해봅니다.

example_text = """
Here are some phone numbers:
- (123) 456-7890
- 987-654-3210
- 555.123.4567
- 1234567890
- (800) 555 1234
"""

phone_numbers = extract_phone_numbers(example_text)
print("Extracted phone numbers:", phone_numbers)

위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다:

Extracted phone numbers: ['(123) 456-7890', '987-654-3210', '555.123.4567', '1234567890', '(800) 555 1234']

전체 코드

위에서 설명한 내용을 전체 코드로 정리하면 다음과 같습니다:

import re

def extract_phone_numbers(text):
    phone_pattern = r'\(?\b[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}\b'
    phone_numbers = re.findall(phone_pattern, text)
    return phone_numbers

example_text = """
Here are some phone numbers:
- (123) 456-7890
- 987-654-3210
- 555.123.4567
- 1234567890
- (800) 555 1234
"""

phone_numbers = extract_phone_numbers(example_text)
print("Extracted phone numbers:", phone_numbers)

이 코드는 다양한 형식의 전화번호를 문자열에서 추출할 수 있는 예제입니다. 필요에 따라 정규표현식 패턴을 수정하여 특정 형식의 전화번호만 추출할 수도 있습니다.

반응형