문제

[프로그래머스] 핸드폰 번호 가리기 (LV. 1)

요약

  • 전화번호 문자열이 주어지면, 뒷 네 자리를 제외한 나머지 자리를 ‘*’ 로 대체


분류

  • 문자열
  • 정규표현식

풀이

1. 내 풀이

  • re.sub 메소드는 매치된 부분을 지정한 문자열로 치환할 수 있다.
  • (?=…) 은 전방탐색을 의미하는 것으로, … 부분이 일치하는 패턴을 찾아야 매치를 시작한다.
  • 즉, 4자리의 숫자 앞에 있는 숫자를 찾아 ‘*’ 문자로 바꾼다.
  • 뒤의 4자리만 ‘*‘로 치환되지 않고 나머지 앞의 숫자들은 모두 ‘*‘로 치환된다.


import re

def solution(s):
    return re.sub('\d(?=\d{4})', '*', s)