반응형
정규 표현식으로 전화번호 추출하기
파이썬의 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)
이 코드는 다양한 형식의 전화번호를 문자열에서 추출할 수 있는 예제입니다. 필요에 따라 정규표현식 패턴을 수정하여 특정 형식의 전화번호만 추출할 수도 있습니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] 정규 표현식에 플래그 (flag) 사용하기 (1) | 2024.07.10 |
---|---|
[ Python ] 정규 표현식을 컴파일 해서 사용하자. (0) | 2024.07.10 |
[ Python ] 정규 표현식 사용하기 (0) | 2024.07.10 |
[ Python ] str과 repr 의 차이에 대해서 알아보기 (0) | 2024.07.10 |
[ Python ] format 함수 사용하기 (0) | 2024.07.10 |