파이썬에서 휴대폰 및 지역 전화번호를 '010-1234-5678' 또는 '02-1234-5678' 형식으로 자동 변환하는 `getCallNumFormat` 함수 사용법을 실제 경험을 바탕으로 정리했습니다. 복잡한 정규식 대신 `re.compile`과 `re.sub`을 활용하여 누구나 쉽게 적용할 수 있습니다.
파이썬 전화번호 포맷 함수 `getCallNumFormat` 핵심 원리
본 함수는 파이썬의 `re` 모듈을 활용하여 전화번호 문자열을 표준 형식으로 변환합니다. 먼저 `re.compile`을 사용하여 전화번호 패턴을 미리 컴파일하여 성능을 최적화합니다. 이후 `re.sub` 함수를 이용해 입력된 전화번호 문자열에서 불필요한 특수문자나 공백을 제거하고, 숫자로만 구성된 경우 길이에 따라 자동으로 하이픈(-)을 삽입하여 'XXX-XXXX-XXXX' 또는 'XXX-XXX-XXXX' 형태의 표준 전화번호 포맷으로 만들어줍니다. 이미 올바른 포맷으로 입력된 경우에는 별도의 처리 없이 그대로 반환하여 유연성을 높였습니다.
위 그림은 `re.compile`과 `re.sub`을 활용한 `getCallNumFormat` 함수의 핵심 로직을 시각적으로 보여줍니다. 먼저 전화번호에서 불필요한 문자를 제거하고, 11자리 또는 10자리 숫자인 경우 각각에 맞는 하이픈(-)을 삽입하는 과정을 확인할 수 있습니다.
전화번호 포맷팅 시 주의사항 및 실제 적용 팁
관련 글
전화번호 포맷팅 함수를 사용할 때는 몇 가지 주의사항이 있습니다. 첫째, 입력되는 전화번호 문자열에 예상치 못한 특수문자나 공백이 포함될 수 있으므로, `re.sub`을 사용하여 이를 사전에 제거하는 것이 중요합니다. 둘째, 11자리(휴대폰)와 10자리(지역번호) 전화번호에 대한 포맷팅 로직을 명확히 구분해야 합니다. 예를 들어, 11자리 숫자는 '01012345678'과 같이 입력될 경우 '010-1234-5678'로, 10자리 숫자는 '0212345678' 또는 '0541234567'과 같이 입력될 경우 각각 '02-1234-5678', '054-123-4567'로 변환되어야 합니다. 또한, 이미 '010-1234-5678'과 같이 하이픈이 포함된 유효한 전화번호 형식은 그대로 반환하도록 처리하여 불필요한 재가공을 방지하는 것이 효율적입니다.
이 이미지는 `getCallNumFormat` 함수가 다양한 입력값에 대해 어떻게 작동하는지 보여주는 예시입니다. 특수문자가 포함된 번호, 숫자로만 이루어진 번호, 그리고 이미 포맷이 적용된 번호까지 모두 올바르게 처리하는 것을 확인할 수 있습니다.
파이썬 전화번호 포맷 함수 상세 코드는 원본 글에서 확인하세요.








