Data_Analysis_Track_33/Python_문제풀이
Python_06_문제풀이(파이썬 정규표현식)
lsc99
2023. 8. 29. 18:08
info 변수는 한줄에 한사람의 data가 있고 구성은 이름 이메일주소 주민번호 순서로 되어있다.
- 이것을 이메일주소, 주민번호만 출력되도록 만들기
# 한줄에 한 사람의 data가 있는 문자열 생성
info ='''김정수 kjs@gmail.com 801023-1010221
박영수 pys.abc@gmail.com 700121-1120212
이민영 lmy-abc@naver.com 820301-2020122
김순희 ksh@daum.net 781223-2012212
오주연 ojy@daum.net 900522-1023218
'''
# Email 주소만 추출 해서 출력
import re
email_pattern = (r"[a-zA-Z0-9._+-]+@[a-zA-Z0-9]+\.[a-zA-Z]{2,4}\b")
p = re.compile(email_pattern)
result = p.findall(info)
print(result)
# 주민번호들만 조회해서 출력
import re
pattern = r"\d{6}-\d{7}" # 패턴
# p = re.compile(pattern)
# result = p.findall(info)
result = re.findall(pattern, info)
print(result)
# 주민번호 뒷자리 정확성 향상
pattern = r"\d{6}-[012349]\d{6}" # 숫자 6자리 - 012349중 하나 + 숫자 6자리
p = re.compile(pattern)
result = p.findall(info)
print(result)
# 이름만 조회해서 출력
pattern = r"[가-힣]{2,4}" # 한글로 2자에서 4자까지
p = re.compile(pattern)
result = p.findall(info)
print(result)
result = p.finditer(info) # finditer 사용
for name in result:
print(name)