inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

[15/21] 이메일, 자동차 등록번호 정규표현식으로 마스킹 하기

자동차 등록번호 마스킹

659

최원준141124

작성한 질문수 28

1

자동차 등록번호 마스킹할 때 질문 있습니다
32 가 1234 가 있을 때 '3*가1**4'로 표현하기 위해서 선생님께서
re.sub('([0-9])([가-힣])(\d)(\d{2})(\d)', r'*\2\3**\5', car_num)으로 작성하셨었는데요
 
처음에 작성하시는 과정에서 ([0-9])([가-힣])까지 쓰셨을때 이렇게 작성하면 문자 앞에 있는 숫자 한자리수가 변한다고 하셨었는데요
이게 어떻게 가능한건지 궁금합니다. 저는 sub메소드가 인식할때 (car_num이 32가1234라고 가정할 경우), ([0-9])는 가장 첫 숫자로 인식할 것이라고 생각했었는데요
정말로 실행해보니 한글 앞에 숫자인 2를 *로 바꾸더라구요
 
그래서 제가 이해한 바로는
 
([0-9])([가-힣])(\d)(\d{2})(\d)'
 
r'*\2\3**\5'
두 식 모두 번호판의 첫 자리 숫자인 3은 포함하지 않고 작성한 것 같다고 생각이 들었습니다. (가장 마지막 자리인 (\d)와 \5를 똑같이 지워도 같은 결과가 나왔는데 
 
컴퓨터가 알아서 ([0-9])([가-힣])(\d)(\d{2})(\d)이 car_num과 일치하는 위치를 찾아서 바꿔주는건가요?
가령 여기서는 [가-힣]이 한글자밖에 없어서 그 위치를 기준으로 바꿔주는건가요???
 
제가 따로 이렇게 기준을 알 수 없는 식인데 앞뒤를 생략한 re.sub식을 적어봤는데 그건 또 오류가 나던데 제가 이해한게 맞는지 궁금합니다
 
 
질문이 너무복잡한 것 같은데 정리하자면,,
1. re.sub을 작성할때 꼭 바꾸고자 하는 문자열을 다 커버하지 않아도 되는지
2. 다 커버하지 않더라도 문자열을 수정할 때의 기준점이 반드시 있어야 하는지
궁금합니다.

pandas python numpy

답변 1

1

박조은

안녕하세요.

 

1) 일부만 일치하게 되면 일치하는 부분을 찾아 해당 부분만 변경하게 됩니다.

2) 패턴을 찾아서 변경하기 때문에 기준점보다는 어떤 패턴인지가 중요합니다. 예를 들어 이메일 주소라면 중간에 @ 이라는 특수문자가 들어가고 도메인 주소에 . 이 들어간다는 식으로 어떤 패턴인지를 정규식으로 구성합니다.

패키지 설치 에러 ydata-profiling

0

134

2

자세한 설명 부탁드려요 ㅜ

0

200

2

seaborn 라이브러리 호출하였으나 그래프가 안 그려져요

0

310

2

value_counts와 count 차이

0

381

2

안녕하세요 데이터 최신과 관련해서 문의드립니다.

0

218

3

scatterplot질문

0

132

1

강의 화면이 안나옵니다

0

174

2

4분12초 2013년부터 데이터가 없으면 어떻게하나요?..

0

193

2

에러 메시지

1

311

2

그래프 색이 동일하게 나옵니다.

0

328

2

시각화 라이브러리 비교

0

400

2

주피터 노트북 설치

0

399

1

2. 상가 기술통계 아웃풋 자료에서 오류가 납니다

0

233

1

14. distplot g = sns.FacetGrid(df_last, row="지역명", height=1.7, aspect=4) g.map(sns.distplot, "평당분양가격", hist=False, rug=True); 오류

0

185

1

group by agg function failed 에러

0

696

2

빈도수가 1000개 이상인 데이터를 따로 담을 때 코드 질문 있습니다.

0

295

2

주피터 노트북 실행 했는데 앞에 *가 생기고 결과가 나오지 않아요

0

373

3

get_string함수에서 문자 'nan'

0

205

1

seaborn X축 시작 지점 조정 질의의 건

0

229

1

14강 distplot 질의

0

300

1

nbextension 설치 및 셋팅 후 적용이 안되는 이슈

0

487

1

corr = df.corr() 입력시 오류

1

383

1

keyword grid_b is not recognized

0

342

1

%ls data 매직커맨드 사용시 한글 깨짐

0

304

1