• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

mask_phone_number 함수

21.02.07 09:37 작성 조회수 136

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를 사용해도 괜찮습니다.

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