• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

정규표현식 주민번호 뒷자리 표시 관련

22.05.20 08:32 작성 조회수 568

0

크롤링을 위한 지식: 크롤링과 프로그래밍 고급 문자열 기술 - 정규표현식3 (2020 업데이트, 2020.12 자료 업데이트!) 5:30 가량에서
주민번호 뒤 7자리를 *로 바꾸는 법을 알려주셨는데요
 
혹시 뒤 6자리만 *로 바꾸고 앞의 1자리(성별)은 입력하는대로 놔두게 하려면 어떻게 해야할까요?
 
전 아래와 같이 해보려고 했는데, 2번째 인자에는 들어가는 그대로만 입력되나봐요(정규식이 안먹히나봐요)
 
#주민번호를 입력하면 그 뒷 6자리를 *로 바꿔라.

import re

idnum = input('what is your id num?')

re.sub('-[-0-9]{7}', '-[0]******', idnum)

답변 1

답변을 작성해보세요.

1

안녕하세요.

기존 코드와 조금 다를 수 있지만, 다음과 같은 방식으로 해도 가능할 것 같습니다.

----------

import re

예문 = "123456-1234567"

패턴 = re.compile(

    r"(\d{6}-\d{1})\d{6}"

)

print(

    패턴.sub("\g<1>******", 예문)

----------

감사합니다.