본문 바로가기
파이썬/데이터 다루기

[240911] #파이썬08-정규표현

by 황오독 2024. 9. 11.

 

정규표현식이란 Python 만의 기능이 아닌, 문자열을 다루는 여러 곳에서 사용되는 공통된 표현식이다.

!!잘 사용하면 정말 편리한 기능이다.

 

1. 정규식으로 휴대폰 번호 뒷자리 가리기

(1) 기존 반복문

peoples = '홍길동: 010-1234-5678 한사랑: 010-4321-8765 일지매: 010-2143-6587'

# 전화번호 뒷자리 숨기기
phone_X = []
for word in peoples.split(' '):
	if len(word) == 13 and word[:3].isdigit() and word[4:8].isdigit() and word[9:13].isdigit():  # isdigit() : 문자열이 '숫자'로만 이루어져있는지 확인하는 함수
    	word = word[0:8] + '-XXXX'
        phone_x.append(word)
    else:
    	phone_x.append(word)
 
people_new = ' '.join(phone_x)
print(peoples_new)

# 결과 출력
홍길동: 010-1234-XXXX 한사랑: 010-4321-XXXX 일지매: 010-2143-XXXX

 

(2) 정규표현식

# 전화번호 뒷자리 숨기기
import re
re.sub(r'(\d{3}[-]\d{4})[-]\d{4}', r'\g<1>-XXXX', peoples)


# 전화번호 뒷자리 숨기기
import re
pat = re.compile(r'(\d{3}[-]\d{4})[-]\d{4}')
pat.sub(r'\g<1>-XXXX', peoples)

 

(3) 응용 - 주민번호 뒷자리 숨기기

# 이름과 주민번호가 섞여 있는 문자열
peoples = '홍길동: 800104-1049234 일지매: 760405-1052114'

# 주민번호 뒷자리 숨기기
import re
re.sub(r'(\d{6})[-]\d{7}', r'\g<1>-*******', peoples)

import re
pat = re.compile(r'(\d{6})[-]\d{7}')
pat.sub(r'\g<1>-*******', peoples)