강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

freedom07님의 프로필 이미지
freedom07

작성한 질문수

공공데이터로 파이썬 데이터 분석 시작하기

[14/21] 정보 마스킹 - 전화번호의 일부 마스크처리 하기

mask_phone_number 함수

작성

·

214

1

phone = '+82-10-1234-5678'

def mask_phone_number(phone):

    num = phone.split('-')

    num_len = len(num)//2 #전화번호의 가운데를 지정하기위해('/'을 2개한 이유는 정수형태로 나와서)

    

    num[num_len] = re.sub('\w','*',num[num_len]) 

    num[-1] = re.sub('(\d{2})(\d{2})', r'**\2', num[-1])

    

    return '-'.join(num)

mask_phone_number(phone)

이렇게 만들었는데요 

궁금한점이 

    num[num_len] = re.sub('\w','*',num[num_len]) 

    num[-1] = re.sub('(\d{2})(\d{2})', r'**\2', num[-1])

이 부분에서 

전화번호 가운데의 부분  num[num_len] = re.sub('\w','*',num[num_len]) 은 정규식 규칙에서 \w로 하고 

전화번호 뒷부분     num[-1] = re.sub('(\d{2})(\d{2})', r'**\2', num[-1]) 에는 정규식 규칙에서\d로 하셨는데..

전화번호 가운데 부분도 숫자라서 \d로 해야 하는 거 아닌가요? 

(규칙에서 \w를 \d로 바꿔도 잘 적용됩니다.)

\w는 (A-Z, a-z, 0-9 ) 문자, 숫자 다 가능해서 그렇게 쓰신건가요? 

답변 1

0

박조은님의 프로필 이미지
박조은
지식공유자

안녕하세요.

질문 주신 내용처럼 \d는 숫자만을 \w는 문자와 숫자를 다 포함하기 때문에 \w를 사용해도 괜찮습니다.

업무나 연구에 적용할 때는 상황에 맞게 사용하시면 됩니다.

freedom07님의 프로필 이미지
freedom07

작성한 질문수

질문하기