파이썬 정규식으로 주민등록번호 뒷자리 6자리를 *표시 하려면 어떻게해야하나요?

조회수 2224회
import re
ju = input("") # 123456-1234567
print(re.sub("d{7}","1******", ju))

6자리로 끊고 앞자리를 나오게 하려면 어떻게 넣어야하는지 모르겠습니다....ㅜㅜ

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    정규식 컴파일시에 그룹핑을 쓰시면 간단합니다.

    예제를 한 번 보시면 간단히 이해되실 거에요.

    임의로 코드를 좀 벌렸습니다...

    import re
    예문 = "123456 - 1234567"
    패턴 = re.compile(
        r"(\d{6} - \d{1})\d{6}"
    )
    
    print(
        패턴.sub("\g<1>******", 예문)
    ) # 결과값 : 123456 - 1****** 
    

    코드 중 위 식의 소괄호 (...) 와 아래 식의 "\g" 이 그룹핑 연관 문법입니다.

    다른 방식으로 써보면,

    import re
    예문 = "123456 - 1234567"
    패턴 = re.compile(
        r"(\d{6}) - (\d{1})\d{6}"
    )
    
    print(
        패턴.sub("\g<1> - \g<2>******", 예문)
    )  # 결과값 : 123456 - 1****** 
    
    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 엇.. 죄송하지만 제가 이상한건지 결과값이 알려주신것처럼 나오지 않네요 다크매터 2018.4.6 14:24
    • 해시코드 "실행하기"로 해 보셨나요?^^; 혹시 예문 대시 양옆에 스페이스바 들어간 것도 체크하셨는지?ㅎ 알 수 없는 사용자 2018.4.6 14:39

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)